调整窗口大小,使主要小部件具有特定的大小
Resize a window such that the primary widget is a specific size
我有一个Qt应用程序,它本质上是一个QMainWindow
,它有一个菜单,一个工具栏和一个主要的小部件。
我想有一个菜单项,这将调整应用程序的大小,使主要的小部件是一个特定的大小,但我还没有找到一种方法来做到这一点。
到目前为止,我能想到的最接近的是这样的:
void on_actionSetSize_triggered() {
ui_.primary_widget->setMinimumSize(100,200);
adjustSize();
}
我的想法是,我把主要的小部件的最小尺寸设置为目标尺寸,然后让UI"缩小到适合"
不幸的是,这似乎充其量只能偶尔工作,它肯定会在需要时增加大小,但当我想要减少大小时,它通常不起作用:-/.
注意:我确实希望允许用户自由地调整应用程序的大小,这只有在他们要求的时候。
对于大小也减少,就像增加一样,您需要在调用adjustSize()
之前在主要小部件上设置固定大小。然后,您可以立即释放约束以允许用户从此以后重新调整大小。
你可以试试:
ui_.primary_widget->setFixedSize(100, 200);
adjustSize();
ui_.primary_widget->setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
请注意,您在Primary Widget上设置的大小必须是基于其内部内容的有效大小。否则,在一个小部件上设置固定大小就会使它尽可能小,而不会破坏布局约束。
相关文章:
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- CreateWindowW 窗口太小
- 如何设置与其背景图像大小相对应的窗口大小?
- 如何防止opengl绘图拉伸到窗口大小?
- 使用 Win32 将 GDI 绘制大小缩放为窗口大小
- 恢复Qt窗口大小和位置问题
- 与WM_DPICHANGED消息一起发送的建议窗口大小太大
- 快板获取当前窗口大小
- 当窗口大小更改时,如何自动缩放QT中的图表
- 尝试在 win 32 中禁用窗口大小调整时,窗口样式行为不一致
- 是否可以强迫窗口匹配小部件的大小
- OpenGL纹理闪烁/有时在窗口大小上移动
- QGraphics手动调整窗口大小后场景宽度/高度没有变化
- 当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
- Qt - 防止在拖动标题栏时调整窗口大小
- 在 Direct2D 绘图中,调整窗口大小后尺寸会更改
- 在窗口大小上绘制的OpenGL消失
- XDG-Shell:如何更改窗口大小
- Qt QSplitter 窗口大小调整时的固定高度小部件
- 调整窗口大小,使主要小部件具有特定的大小