在第一张照片中,我设计了一个原型。 MainWindow
包含小部件和三个框架。中心框架有另一个框架,当我在全屏幕中运行应用程序时,中心框架中存在尺寸问题,如第二张图片所示。我想将框架置于其框架中心。我怎么能这样做?
答案 0 :(得分:0)
您可以从Qt Designer轻松完成。只需将另一个水平布局添加到中间框架即可。然后将小部件添加到布局中,转到对象管理器,在小部件上调用上下文菜单,单击布局对齐并选择水平居中。
以下是我刚刚创建的.ui文件来检查您的问题:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>965</width>
<height>502</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>9</x>
<y>9</y>
<width>291</width>
<height>411</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="QListWidget" name="listWidget"/>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>965</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
版本1:基本上,通过上面的示例,我设法重现了您的错误。我在中间框架内添加了水平布局,但在更改尺寸时,中间窗口小部件已对齐到左侧。
您的问题的答案如下:Make QHorizontalLayout expand inside QFrame
您必须将水平布局添加到中间框架中。然后你必须调用中间框架的上下文菜单,单击布局 - &gt;水平布局。在布局中添加小部件。最有可能的是,widget会将其宽度扩展到主窗口的宽度。将SizePolicy更改为固定。此时你的问题应该解决了。