Qt - 在Dock Widget中将布局扩展到最大尺寸

时间:2014-04-12 14:44:34

标签: qt qt5 qwidget qdockwidget qlayout

我正在为我们的独立游戏项目开发类似CAD的程序。我已经拥有很好的工作形式与一堆小部件等等。但有一件事困扰着我。

我正在使用DockWidgets,其中我有QTableWidget并将水平布局作为容器等待我稍后初始化并放入其中的OpenGLWindow类。 当我启动应用时,所有DockWidgets都设置为QTableWidget的大小,忽略在创建表单实例时OpenGLWindow已添加到布局中,我必须自己展开停靠。

那么有没有办法告诉Dock小部件尽可能扩展?

我的OpenGLWindow看起来像是:

class OpenGLWindow : public QWindow, protected QOpenGLFunctions

这就是我在启动时将它插入布局的方式:

OpenGLWindow * glwindow = new OpenGLWindow(...);
QWidget * container = QWidget::createWindowContainer(glwindow,ui->dockWidget,Qt::Window);
ui->horizontalLayout->addWidget(container);

我试图通过许多不同的奇怪方式扩展它,现在我真的没有想法。

感谢您的帮助。

更新 这是容器的大小政策:

container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

更新 主要问题是将QDockWidget调整到最大可能宽度。

更新 我仍然遇到同样的问题,但是当我再添加一个OpenGLWindow共享上下文时,现在出现了新的问题。两个容器小部件现在在启动时都没有超大尺寸,因此它们覆盖了DockWidgets标题,当我调整主窗口中的任何小部件时,它们只是像预期的那样调整到正常大小。

0 个答案:

没有答案