我们有一个窗口,里面有几个组件QDockWidget.理想情况下,我们希望所有组件都可以停靠,但有一个组件可能始终可见.所以我们制作了中央小部件.
但是,这不允许我们创建tabifyDockWidget包含此中央窗口小部件的可停靠窗口小部件的标签式堆栈(您可以通过调用创建).因此,我们尝试创建一个没有中央窗口小部件的UI,但有几个QDockWidget.
我在手册中找不到任何迹象,QDockWidget或者QMainWindow说这是不允许的情况.我们在Qt Designer中尽可能地创建,并且它似乎要求您有一个中央窗口小部件 - 正如它在手动编辑XML后崩溃所示.
问题是:拥有一个QMainWindow只有QDockWidgets而没有中央窗口小部件是合法的吗?Qt Designer是因为一个bug而崩溃,还是告诉我这是一个坏主意,我需要停止这样做?
小智 14
Qt的文档说:
注意:不支持创建没有中央窗口小部件的主窗口.即使它只是一个占位符,您也必须拥有一个中央窗口小部件.
所以你可以隐藏空的中央小部件:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->centralWidget->hide();
}
Run Code Online (Sandbox Code Playgroud)
小智 10
如果我在"ui-> setupUi(this)"生成的行之后键入它,它对我有用.
MainWindow::setCentralWidget(NULL);
Run Code Online (Sandbox Code Playgroud)
如果是"legal"我不知道,但我知道它对我有用.
(我知道这是一个老问题,但仍然有效:))