如何使Qt小部件可调整大小?

时间:2014-10-11 08:14:21

标签: qt python-2.7 widget qtableview

我想在垂直布局中创建一个由QLineEdit和两个QTableView小部件组成的应用程序。

示例代码:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Dialog</class>
 <widget class="QDialog" name="Dialog">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Dialog</string>
  </property>
  <widget class="QWidget" name="verticalLayoutWidget">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>401</width>
     <height>301</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QLineEdit" name="lineEdit"/>
    </item>
    <item>
     <widget class="QTableView" name="tableView_2"/>
    </item>
    <item>
     <widget class="QTableView" name="tableView"/>
    </item>
   </layout>
  </widget>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>lineEdit</sender>
   <signal>returnPressed()</signal>
   <receiver>Dialog</receiver>
   <slot>close()</slot>
   <hints>
    <hint type="sourcelabel">
     <x>200</x>
     <y>14</y>
    </hint>
    <hint type="destinationlabel">
     <x>199</x>
     <y>149</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>

但是这些QTableView小部件无法调整大小。我没有在Qt中找到任何属性。

那么如何才能使这些QTableView小部件可以调整大小或自动扩展和收缩?

意味着如果我减小第一个QTableView窗口小部件的大小,那么第二个QTableView窗口小部件的自动大小应该增加意味着如果我在运行时更改垂直布局中任何窗口小部件的大小,则每个窗口小部件应自动扩展或收缩

示例代码是在Qt4 Designer Ubuntu 14.04上设计的。

2 个答案:

答案 0 :(得分:3)

中断当前布局,选择两个小部件,单击Layout Vertically in Splitter,最后选择表单并单击layout verticallyenter image description here

答案 1 :(得分:1)

这是因为您的QDialog上没有布局。你所做的是你在对话框的顶部拖动了一个垂直布局,现在该对话框包含absolute定位的布局,并且没有链接到对话框。您要做的是从QSplitter顶部的垂直布局移动所有小部件,右键单击QDialog并在Lay out上下文菜单条目中选择{{1} }或者点击Lay Out Vertically并按QDialog。结果应如下:

Ctrl + 2

enter image description here

我建议您阅读Qt Layout Management Documentation以获取有关此主题的更多信息。