我有一堆标准的qt creator拖动控件,我在窗口的底部。我有一个表格小部件,我想垂直扩展,以便在窗口向下扩展时显示模式行,如果向上扩展到最小值则更少。我希望所有其他小部件在边缘移动时粘在窗口的底部。我正在使用Qt Creator 2.1.0和Qt 4.7,我没有看到任何可以做我需要的小部件的标志,谷歌也没有真正发现任何有启发性的东西。也许它与将小部件放在一个移动和/或伸展的容器中有关?现在,他们只是在MainWindow上。
答案 0 :(得分:2)
只需设置垂直布局,为其添加间隔,然后添加小部件。 spacer将把你的小部件一直推下来。此外,您可能想要使用尺寸政策。
答案 1 :(得分:1)
很难从你的问题中知道你想要做什么,但也许你正在寻找QSplitter。
或者,您可以为QWidget指定各种QLayout,例如QHBoxLayout,QVBoxLayout,QGridLayout等。可以在布局中添加各种小部件指定,然后在QWidget上设置布局,因此它充当您添加到布局的窗口小部件的容器。在将小部件添加到布局时,可以设置拉伸和对齐标记。
答案 2 :(得分:1)
只有在需要对接功能时才应使用QMainWindow
。否则,只需使用普通QWidget
。没有通用的子窗口小部件可以“卡在”QMainWindow
上。它们需要属于中央窗口小部件。您最有可能需要做的是为表格小部件设置Expanding
垂直大小策略。设计师应该默认执行此操作。这是一个例子:
<?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>