在Qt窗口的布局中具有固定大小的小部件
Having fixed-size widgets inside a layout in Qt Window
我是Qt的新手,所以我开始了一个项目来练习使用这个库。我有两个控件的窗口:
- 列表小部件(位于顶部)
- 图形视图(底部)
它们在centralWidget
布局中分组。
<?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>660</width>
<height>412</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<property name="enabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListWidget" name="listWidget"/>
</item>
<item>
<widget class="QGraphicsView" name="graphicsView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>100</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>660</width>
<height>21</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>
控件随着窗口的增长而增长,但它们并没有根据我的需要调整大小。所以我已经阅读了Qt网站上的文档,没有什么清楚的。下面是一个如何调整窗口大小的视频。
https://www.youtube.com/watch?v=rDSxcKFILOE
请观看它,以便能够清楚地了解问题所在。
事情应该如何发生
当我水平调整窗口大小时,一切都已经很好了,两个控件都随窗口一起增长/收缩。当我垂直调整窗口大小时,唯一应该调整大小的控件是顶部的控件(ListView)。图形视图的大小必须为width: as the listview, height: 100
首先查看http://qt-project.org/doc/qt-4.8/qsizepolicy.html#Policy-枚举
您需要(并且似乎正在做)将策略设置为QSizePolicy::Fixed
。然而,在您的视频中,它显示小部件在某些情况下仍然会收缩。
为了避免这种情况,请确保场景中的所有三个小部件都设置了适当的最小尺寸。
- 将小部件的最小大小设置为与最大大小相同
- 也许可以删除其他小部件的高最小大小
- 如果需要,请为父窗口小部件设置最小大小
有时,在你得到你想要的东西之前,Qt的布局会变得相当棘手。
相关文章:
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 超轻 - 如何最小化窗口
- Gtkmm 窗口为空白,不显示任何小部件或标题
- CreateWindowW 窗口太小
- QT-如何通过按下按钮从子窗口小部件返回到父窗口小部件
- 如何将QEvents传递给子窗口小部件
- 如何隐藏最大化和最小化按钮并在qml应用程序窗口中显示关闭按钮?
- 如何使用 stl 最小化 c++ 中所有打开的窗口
- 是否可以强迫窗口匹配小部件的大小
- 一个人如何将QT(C )UI分为多个小部件子类,并使其显示与同一类中的所有窗口
- 当模式窗口最小化时,最小化所有应用程序窗口(在 Linux 上)
- gtkmm - 如何使包含小部件的框展开以填充窗口
- 替代QDockWidget的小部件,而没有删除以前的窗口
- 什么是窗口最大化/最小化/恢复的WM Windows消息
- 是否可以从其他线程隐藏qt小部件窗口
- 在小尺寸窗口中保存大尺寸图片
- C++ 创建小部件数组
- 如何在C++中将密钥发送到最小化窗口
- 我如何接收或能够在我的小部件窗口外处理mouseMoveEvent(s)
- 从另一个线程最大化/最小化窗口