Qt设计师|拉伸表的列充分

时间:2015-10-28 08:46:06

标签: qt ubuntu qt-designer

我正在使用Qt4 Designer创建一个简单的GUI。 我在对话框中添加了一个QTableWidget。我的表中只需要一列,我希望此列可以将自身拉伸到最大宽度。但似乎是固定宽度。

我尝试从编辑器中将设置属性horizontalHeaderStretchLastSection设置为true,但它没有帮助。 任何人都可以告诉我应该编辑哪个属性?

以下是屏幕截图。enter image description here

以下是我正在使用的QTableWidget的其他属性。

  <widget class="QDialogButtonBox" name="buttonBox">
   <property name="geometry">
    <rect>
     <x>180</x>
     <y>460</y>
     <width>341</width>
     <height>32</height>
    </rect>
   </property>
   <property name="orientation">
    <enum>Qt::Horizontal</enum>
   </property>
   <property name="standardButtons">
    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
   </property>
  </widget>
  <widget class="QTableWidget" name="tableWidget">
   <property name="geometry">
    <rect>
     <x>40</x>
     <y>70</y>
     <width>256</width>
     <height>192</height>
    </rect>
   </property>
   <property name="sizePolicy">
    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <property name="frameShadow">
    <enum>QFrame::Plain</enum>
   </property>
   <property name="midLineWidth">
    <number>1</number>
   </property>
   <attribute name="horizontalHeaderVisible">
    <bool>false</bool>
   </attribute>
   <attribute name="horizontalHeaderDefaultSectionSize">
    <number>107</number>
   </attribute>
   <attribute name="horizontalHeaderHighlightSections">
    <bool>true</bool>
   </attribute>
   <attribute name="horizontalHeaderStretchLastSection">
    <bool>true</bool>
   </attribute>
   <attribute name="verticalHeaderVisible">
    <bool>true</bool>
   </attribute>
   <attribute name="verticalHeaderShowSortIndicator" stdset="0">
    <bool>false</bool>
   </attribute>
   <attribute name="verticalHeaderStretchLastSection">
    <bool>false</bool>
   </attribute>
   <row>
    <property name="text">
     <string>New Row</string>
    </property>
   </row>
   <row>
    <property name="text">
     <string>rrr</string>
    </property>
   </row>
   <row>
    <property name="text">
     <string>gggg</string>
    </property>
   </row>
  </widget>

1 个答案:

答案 0 :(得分:1)

您将垂直标题与第一列混淆。如果您想要一个只有一列填充整个宽度的表,请隐藏垂直标题并拉伸水平标题的最后一列:

screenshot

然后你应该编辑表项,添加一列(比如称为“第一列”),然后你需要多行(你称之为无关紧要)。这将启用标签,您可以在其中添加实际的表格内容。完成后,您的表应如下所示:

screenshot

我认为值得指出的是,没有标题的单列表或多或少等同于ListWidget。因此,鉴于ListWidget具有更简单的API,您可以考虑使用它。