首页| 论坛| 消息

标题:QMdiArea添加的子窗口不在QMdiArea的容器里,没找到具体原因
作者:xiaodemo
日期:2022-06-17 22:49
内容:

代码大概如下:
class MdiSubWin :public QMdiSubWindow, public Lei2
{
...
};
class DefWin:public QWidget
{
.....
DefWin()
{
QMdiArea *mdiArea = new QMdiArea;
MdiSubWin* subDef = new MdiSubWin;
QMdiSubWindow * sub = dynamic_cast(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 类。其它主要内容和上面的代码差不多。


#1 [介农酥 06-25 14:49]
QMdiSubWindow * sub = dynamic_cast(subDef);
subDef是子类,可以直接赋给sub,不用强制转换

回复 发表
主题 版块