xiaodemo |
2022-06-17 22:49 |
QMdiArea添加的子窗口不在QMdiArea的容器里,没找到具体原因
代码大概如下:
class MdiSubWin :public QMdiSubWindow, public Lei2 { ... };
class DefWin:public QWidget { ..... DefWin() { QMdiArea *mdiArea = new QMdiArea; MdiSubWin* subDef = new MdiSubWin; QMdiSubWindow * sub = dynamic_cast<QMdiSubWindow *>(subDef); sub->setAttribute(Qt::WA_DeleteOnClose); mdiArea->addSubWindow(sub); sub->show(); QVBoxLayout *vlay = new QVBoxLayout; vlay->addWidget(mdiArea); setLayout(vlay); } };
说明:Lei2是一个抽象基类,调试时返回的sub 和添加的subDef 的地址值是一样的;但是sub 就是没在QMdiArea的容器里,找了好久的原因,都没找到。请问各位大神,有没有知道这个原因的。领说明下MdiSubWin 类里有一个QLabel,没有布局,直接是QLabel *label = new QLabel(this),此处的this代指MdiSubWin 类。其它主要内容和上面的代码差不多。 |
|