【发布时间】:2017-09-16 09:32:00
【问题描述】:
我希望用户能够垂直调整窗口大小,但我不确定我会如何做到这一点。我在 Qt Creator 中选择了我的根对象(QWidget 类型的视图),但我没有看到允许用户垂直调整对象大小的选项。这必须通过代码来完成吗?
【问题讨论】:
-
查看 QSizeGrip
标签: c++ qt resize qt-creator
我希望用户能够垂直调整窗口大小,但我不确定我会如何做到这一点。我在 Qt Creator 中选择了我的根对象(QWidget 类型的视图),但我没有看到允许用户垂直调整对象大小的选项。这必须通过代码来完成吗?
【问题讨论】:
标签: c++ qt resize qt-creator
默认情况下,如果QWidget 是顶级窗口,您可以调整它的大小,因为minimumSize 和maximumSize 是不同的,因为它们表示调整大小的范围。
如果您想让用户仅垂直调整大小,那么您只需将minimumWidth 和maximumWidth 设置为相同的值(可能是@987654331 的当前宽度@)。 Qt 将负责指示底层的 Windows 管理器。
您可以在设计器中执行此操作,也可以使用setMinimumWidth 和setMaximumWidth 方法以编程方式执行此操作。 编辑:正如评论中提到的,有一个setFixedWidth 方法可以简化此操作(并使其在您的代码中更加明确)。
当然,您可以使用组合,例如设置最小宽度(或高度,或两者-最小尺寸-)以避免您的顶级窗口折叠并变得不可用,设置最大尺寸......一常见的设置是制作minimumSize = maximumSize,所以你把窗口设为固定大小(可以使用方便的方法setFixedSize)。
PS:请注意,这与sizePolicy 无关,它只是指示父布局在放置小部件时可以采取哪些操作-关于大小-。由于顶级窗口没有父布局,因此根本不使用此策略。
【讨论】:
QWidget::setFixedWidth。
QWidget,则有一个 Size constrains 子菜单可以帮助您设置最小值或最大尺寸为当前尺寸。