【发布时间】:2015-09-02 17:06:53
【问题描述】:
我有MainWindow 表格,里面有Widget。我还有另一个Widget 类(promoted to MainWindow),其中只有 DockWidget。在MainWindow 中,我正在打开新的并放入Widget。但是当我从close(cross"X") 按钮关闭DockWidget 时。在我的@ 987654332@它不清洁..
对不起,我的英语不好最好在这里粘贴我的代码:
qDebug() << ui->widget->layout()->count();
QueryWidget *lQueryWidget = new QueryWidget(this);
ui->widget->layout()->addWidget(lQueryWidget);
所以每次虽然我关闭DockWindow(lQueryWidget),layout()->count() 永远不会减少。我试图删除布局内的所有内容,例如;
QList<QObject*> child = ui->widget->layout()->children();
foreach (QObject *var, child)
{
delete var;
}
但它永远不会进入 foreach 循环。如果您检查下面的图片,您会看到 DockWidget 上方有一些东西,但它不可见..您能帮我解决这个问题吗?
【问题讨论】:
-
您应该考虑使用
QLayout方法,而不是删除QObject::children(),例如count()、itemAt()和removeItem()。另外,我无法理解的一件事-您是否将MainWindow放在MainWindow内? -
@Amartel QueryWidget 在 MainWindow Widget 对象中提升
-
为什么有两个QMainwindow?为什么要将那个小部件提升为 QMainwindow?你想做什么?
-
@UmNyobe 我有 1 个 QMainWindow 和 2 个 QWidget 类。我在 QMainWindow 中创建了 2 个小部件并将 QWidgets 提升为 QMainWindow ...我正在尝试将 MainWindow 与小部件(具有 DockWidgets)分开
标签: qt user-interface widget