如何将 "stick" 小部件置于扩展 window 的底部?
How to "stick" widgets to bottom of an expanding window?
我有一堆标准的 qt creator 拖拽控件,它们位于 window 的底部。我有一个 table 小部件,如果 window 向下扩展,我想垂直扩展它以显示更多行,如果向上扩展到最小,则显示更少。当边缘移动时,我希望所有其他小部件都粘在 window 的底部。我正在使用 Qt Creator 2.1.0 和 Qt 4.7,我没有看到任何可以满足我需要的小部件的标志,谷歌搜索也没有真正发现任何有启发性的东西。也许它与将小部件放在移动 and/or 延伸的容器中有关?现在,它们就在 MainWindow 上。
很难从你的问题中知道你想做什么,但也许你正在寻找 QSplitter。
或者,您可以指定各种 QLayouts for a QWidget, such as QHBoxLayout, QVBoxLayout, QGridLayout,等等。可以将各种小部件添加到您指定的布局中,然后您在 QWidget 上设置布局,因此它充当您的小部件的容器已添加到布局中。可以在将小部件添加到布局时设置拉伸和对齐标志。
A QMainWindow
只应在您需要其对接功能时使用。否则,只需使用普通的 QWidget
。没有通用的子部件可以 "stuck" 到 QMainWindow
上。他们需要属于中央小部件。您最有可能需要做的就是为 table 小部件设置 Expanding
垂直尺寸策略。默认情况下,设计师应该这样做。这是一个例子:
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="table">
<row>
<property name="text">
<string>1</string>
</property>
</row>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>fyngyrz</string>
</property>
</item>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="foo">
<property name="text">
<string>Foo</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="bar">
<property name="text">
<string>Bar</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>
只需设置一个垂直布局,向其添加一个分隔符,然后添加您的小部件。垫片会将您的小部件一直向下推。此外,您可能想尝试一下尺寸政策。
我有一堆标准的 qt creator 拖拽控件,它们位于 window 的底部。我有一个 table 小部件,如果 window 向下扩展,我想垂直扩展它以显示更多行,如果向上扩展到最小,则显示更少。当边缘移动时,我希望所有其他小部件都粘在 window 的底部。我正在使用 Qt Creator 2.1.0 和 Qt 4.7,我没有看到任何可以满足我需要的小部件的标志,谷歌搜索也没有真正发现任何有启发性的东西。也许它与将小部件放在移动 and/or 延伸的容器中有关?现在,它们就在 MainWindow 上。
很难从你的问题中知道你想做什么,但也许你正在寻找 QSplitter。
或者,您可以指定各种 QLayouts for a QWidget, such as QHBoxLayout, QVBoxLayout, QGridLayout,等等。可以将各种小部件添加到您指定的布局中,然后您在 QWidget 上设置布局,因此它充当您的小部件的容器已添加到布局中。可以在将小部件添加到布局时设置拉伸和对齐标志。
A QMainWindow
只应在您需要其对接功能时使用。否则,只需使用普通的 QWidget
。没有通用的子部件可以 "stuck" 到 QMainWindow
上。他们需要属于中央小部件。您最有可能需要做的就是为 table 小部件设置 Expanding
垂直尺寸策略。默认情况下,设计师应该这样做。这是一个例子:
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="table">
<row>
<property name="text">
<string>1</string>
</property>
</row>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string>fyngyrz</string>
</property>
</item>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="foo">
<property name="text">
<string>Foo</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="bar">
<property name="text">
<string>Bar</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>
只需设置一个垂直布局,向其添加一个分隔符,然后添加您的小部件。垫片会将您的小部件一直向下推。此外,您可能想尝试一下尺寸政策。