【01】了解 Qt Widgets Designer
启动 Designer
安装 Qt 后,您可以像在开发主机上的任何其他应用程序一样启动 Qt Widgets Designer。您还可以直接从 Qt Creator 启动 Qt Widgets Designer。Qt Creator 在设计模式下自动打开集成的 Qt Widgets Designer 中的所有 .ui 文件。
通常,集成的 Qt Widgets Designer 包含与独立的 Qt Widgets Designer 相同的功能。有关差异的更多信息,请参阅 Qt Creator 手册。
如果您的大型表单不适合 Qt Creator 设计模式,您可以在独立的 Qt Widgets Designer 中打开它们。
用户界面
当用作独立应用程序时,Qt Widgets Designer 的用户界面可以配置为提供多窗口用户界面(默认模式),也可以用于停靠窗口模式。在集成开发环境 (IDE) 中使用时,只有多窗口用户界面可用。您可以在 Preferences (首选项) 对话框中的 Edit (编辑) 菜单中切换模式。
在多窗口模式下,您可以排列每个工具窗口以适合您的工作方式。主窗口由菜单栏、工具栏和控件框组成,该框包含可用于创建用户界面的控件。
Qt Widgets Designer 的主窗口
菜单栏提供了用于管理表单、使用剪贴板和访问特定于应用程序的帮助的所有标准作。当前编辑模式、工具窗口和正在使用的表单也可以通过菜单栏访问。
工具栏显示编辑表单时使用的常见作。这些也可以通过主菜单获得。
控件提供用于设计控件的常见控件和布局。这些被分组为反映其用途或功能的类别。
Qt Widgets Designer 的大多数功能都可以通过菜单栏、工具栏或控件框访问。某些功能还可以通过可在表单窗口中打开的上下文菜单获得。在大多数平台上,鼠标右键用于打开上下文菜单。
Qt Widgets Designer 的控件区
控件区提供了一系列标准 Qt 控件、布局和其他对象,这些对象可用于在表单上创建用户界面。控件区中的每个类别都包含具有相似用途或相关功能的控件。
您可以通过单击类别标签旁边的手柄来显示类别中的所有可用对象。在 Widget Editing Mode (窗口控件编辑模式)下,您可以通过将相应的项目从控件区拖动到表单上,然后将它们拖放到所需的位置,将对象添加到表单中。
Qt Widgets Designer 提供了一个暂存器功能,允许您将常用对象收集到一个单独的类别中。便笺簿类别可以填充表单中当前显示的任何控件,方法是将它们从表单中拖放到控件区中。这些控件的使用方式与任何其他控件相同,但它们也可以包含子控件。在窗口控件上打开上下文菜单以更改其名称或将其从便笺簿中删除。
译者注:官方文档中给出的图片顺序似乎有误,本文已做调整,如误判请指出。
Qt 中的布局概念
布局用于排列和管理构成用户界面的元素。Qt 提供了许多类来自动处理布局—— QHBoxLayout(水平布局)、QVBoxLayout(垂直布局)、QGridLayout(栅格布局) 和 QFormLayout。这些类解决了自动布置控件的难题,提供了一个行为可预测的用户界面。幸运的是,使用 Qt Widgets Designer 排列控件不需要布局类的知识。相反,请从上下文菜单中选择 Layout Out Horizontally(水平布局)、Layout Out in a Grid(栅格布局) 等选项之一。
每个 Qt 控件都有一个推荐的大小,称为 sizeHint()。布局管理器将尝试调整控件的大小以满足其大小提示。在某些情况下,无需具有不同的大小。例如,QLineEdit 的高度始终是一个固定值,具体取决于字体大小和样式。在其他情况下,您可能需要更改大小,例如,QLineEdit 的宽度或项目视图控件的宽度和高度。这就是控件大小约束—— minimumSize 和 maximumSize 约束发挥作用的地方。这些是您可以在属性编辑器中设置的属性。例如,要覆盖默认的 sizeHint(),只需将 minimumSize 和 maximumSize 设置为相同的值即可。或者,要将当前大小用作大小约束值,请从控件的上下文菜单中选择 Size Constraint 选项之一。然后,布局将确保满足这些约束。要通过代码控制控件的大小,您可以在代码中重新实现 sizeHint()。
下面的屏幕截图显示了使用网格设计的基本用户界面的细分。屏幕截图上的坐标显示了网格中每个小组件的位置。

注意:在网格内部,QPushButton 对象实际上是嵌套的。右侧的按钮首先放置在 QVBoxLayout ;底部的按钮首先放置在 QHBoxLayout 中。最后,它们被放入 QGridLayout 的坐标 (1,2) 和 (2,1) 中。
为了可视化,将布局想象成一个尽可能缩小的盒子,试图以整齐的排列挤压您的控件,同时最大限度地利用可用空间。
Qt 的布局可以在以下情况下提供帮助:
- 调整用户面的大小以适应不同的窗口大小。
- 调整用户界面中元素的大小以适应不同的本地化。
- 排列元素以符合不同平台的布局准则。
因此,您不再需要担心为不同的平台、设置和语言重新排列小部件。
以下示例显示了不同的本地化如何影响用户界面。当本地化需要更多空间来容纳较长的文本字符串时,Qt 布局会自动缩放以适应这种情况,同时确保用户界面看起来美观并且仍然符合平台准则。


布置控件的过程包括创建布局层次结构,同时设置尽可能少的控件大小约束。
有关 Qt 布局类的更多技术观点,请参阅布局管理文档。

Qt Widgets Designer 是用于设计和构建图形用户界面的工具,支持独立或集成在 Qt Creator 中使用。它提供多窗口和停靠模式,包含菜单栏、工具栏和控件区,便于拖放设计。布局功能(如水平、垂直和网格布局)简化了控件排列,适应不同窗口大小和本地化需求。



浙公网安备 33010602011771号