如何在Qt Designer中将容器内的元素水平居中?
Qt Designer实现元素水平居中的解决方法
方法一:可视化操作(Qt Designer内)
- 选中中央widget的
verticalLayout垂直布局 - 在右侧属性编辑器中找到
alignment属性,勾选AlignHCenter(水平居中) - 也可以单独设置每个元素的对齐:右键Label或按钮 → 布局 → 设置对齐方式 → 勾选水平居中
方法二:直接修改.ui文件代码
找到垂直布局的代码段,添加alignment属性并设置水平居中,修改后的布局代码如下:
<layout class="QVBoxLayout" name="verticalLayout"> <property name="alignment"> <set>Qt::AlignHCenter|Qt::AlignTop</set> </property> <item> <widget class="QLabel" name="label"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut </string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> <item> <widget class="QPushButton" name="pushButton"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>PushButton</string> </property> </widget> </item> </layout>
你之前尝试Grid Layout或添加Spacers没效果,问题出在没正确配置布局项的对齐规则,或是Spacers的尺寸策略设置有误。用垂直布局直接设置整体水平居中是最简洁的方案,因为你的元素都设置了固定宽度,布局会自动将它们在容器内水平居中。
内容的提问来源于stack exchange,提问作者cmd770
相关产品推荐
相关产品推荐

