Qt 在另一个小部件中调整小部件的大小

Posted

技术标签:

【中文标题】Qt 在另一个小部件中调整小部件的大小【英文标题】:Qt resize widget inside another widget 【发布时间】:2012-07-23 12:02:35 【问题描述】:

我有以下布局:

黑色矩形是 QVBoxLayouts,红色是通用小部件容器,蓝色小矩形是我自定义的 openGL 小部件。

我已经为所有布局和小部件设置了调整大小的策略,但我无法让 openGL 小部件调整到其父区域的范围(图像中的红色矩形)。

我是 Qt 初学者,也许我需要使用信号和插槽来将蓝色的小 openGL 小部件调整为红色小部件?但是怎么做呢?

【问题讨论】:

【参考方案1】:

在 Qt5.4(我没有测试其他人)中,新的 QOpenGLWidget(内部布局)在我的情况下不会自动调整大小。 我打电话给

LayoutWidget->setGeometry(QRect(0, 0, event->size().width(), event->size().height()));

在父窗口的resizeEvent(QResizeEvent *event)中。

【讨论】:

【参考方案2】:

QGLWidget 也应该在一个布局(任何布局类型)中,以便在调整其父级大小时自动调整自身大小。

例如,在设计器中,左键单击红色的“通用小部件容器”,然后选择垂直布局。

【讨论】:

很抱歉,“布局”菜单中的每个选项都是灰色的。这很奇怪,但我一开始就尝试过。我不知道为什么,但那里的一切都是灰色的 我最终通过 this->ui->graphLayout->addWidget(myOpenGLWidget);现在可以了,谢谢 @JohnnyPauling 如果它显示为灰色,则可能 GL 小部件不是另一个小部件的子级。您可以检查它是否在分层树面板中(您也可以从树中更改布局)。

以上是关于Qt 在另一个小部件中调整小部件的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 表单类中调整 OpenGL 小部件的大小

如何允许浮动 Qt5 停靠小部件的交互式调整大小

qt 小部件在添加到另一个小部件时重叠

Qt 设计器和 Dock 小部件

我拖放一个表视图小部件 (Qt)。填充元素后如何调整大小?

如何在Qt Creator中使两个小部件相互连接并相互调整大小[重复]