代码大概如下:
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 类。其它主要内容和上面的代码差不多。