3

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

4

0 回答 0