我正在为我们的独立游戏项目开发类似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标题,当我调整主窗口中的任何小部件时,它们只是像预期的那样调整到正常大小。