附件是我的问题的QT设计师的一个例子。我的目标是将任何内容(特别是lineEdit)内容扩展到QTabWidget的最右边。
如果您注意到我在图片中选择了标签,并且表示当前没有布局(如上面的红色禁止吸烟符号所示)。 当我尝试使用标签上方的按钮(水平,垂直,网格,表格等等)添加布局时,无论我做什么,都不会更改选项卡布局,但更改了最顶级的窗口小部件布局,这是我不想要的,因为这样可以让QTabWidget能够承担窗口的大小。
我尝试为选项卡中的元素提供水平和垂直布局,这可能会起作用,但它不起作用,因为我的下一个附加图像显示。我的预感是因为标签没有布局,任何布局都不会受到尊重。
感谢任何帮助。我已经花了好几个小时而无法弄清楚我的生活......!
以下是UI XML:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>xMarket</class>
<widget class="QWidget" name="xMarket">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>737</width>
<height>421</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTabWidget" name="xMarketTabWidget">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>240</x>
<y>30</y>
<width>113</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>150</x>
<y>30</y>
<width>59</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Search:</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
答案 0 :(得分:6)
要在选项卡上设置布局,首先需要选择其父选项卡窗口小部件。
您可以通过在对象检查器中按名称选择它(例如,通过单击示例中的xMarketTabWidget
),或者只需单击其选项卡栏中的相应选项卡即可。父选项卡窗口小部件必须在其周围有一个选择矩形,然后才能在其中一个选项卡上设置布局。
完成后,您可以单击Designer工具栏上的“水平布局”或“网格布局”按钮,为选项卡设置适当的布局。但请注意,选项卡必须至少有一个子窗口小部件才能在其上设置布局 - 布局按钮将全部禁用为空选项卡。