如何水平停靠 Qt 小部件?
How to dock horizontally Qt widgets?
我正在从 Microsoft Visual Studio 迁移到 Qt。桌面应用程序中对话框的常见设计是一组标签和字段,其中对话框看起来像带有标签和相关字段的网格。所以,我们可以有 Username 标签和该标签右侧的文本框,然后是 Password 标签等。通常当我们调整 window,标签大小保持不变,文本框宽度增加以填充额外的 space,因此用户有更多 space 在文本框中输入长字符串并无需滚动即可查看。
Visual Studio 有 停靠 概念来描述此类布局,因此您 select 一个控件并设置其调整大小行为,在我们的示例中我们必须设置 Dock = Fill
用于指示 Windows 表单如何调整它们大小的文本框。如果您设置 Width = *
,WPF 具有类似的功能。
但是,我在 Qt Creator Designer 中看不到任何此类属性。
那么如何指示 Qt 小部件(例如文本框)填充其父小部件中可用的所有 space?
在 Qt 中,小部件的几何形状可以由布局自动管理。一个小部件本身不会填充父级。您需要在父窗口小部件上设置布局,并将窗口小部件添加到父窗口小部件。有很多教程。
适用于您的情况的特定布局是 QFormLayout
。 This answer 有一个完整的例子。
我正在从 Microsoft Visual Studio 迁移到 Qt。桌面应用程序中对话框的常见设计是一组标签和字段,其中对话框看起来像带有标签和相关字段的网格。所以,我们可以有 Username 标签和该标签右侧的文本框,然后是 Password 标签等。通常当我们调整 window,标签大小保持不变,文本框宽度增加以填充额外的 space,因此用户有更多 space 在文本框中输入长字符串并无需滚动即可查看。
Visual Studio 有 停靠 概念来描述此类布局,因此您 select 一个控件并设置其调整大小行为,在我们的示例中我们必须设置 Dock = Fill
用于指示 Windows 表单如何调整它们大小的文本框。如果您设置 Width = *
,WPF 具有类似的功能。
但是,我在 Qt Creator Designer 中看不到任何此类属性。
那么如何指示 Qt 小部件(例如文本框)填充其父小部件中可用的所有 space?
在 Qt 中,小部件的几何形状可以由布局自动管理。一个小部件本身不会填充父级。您需要在父窗口小部件上设置布局,并将窗口小部件添加到父窗口小部件。有很多教程。
适用于您的情况的特定布局是 QFormLayout
。 This answer 有一个完整的例子。