如何使Qt Designer的自适应布局与PyQt4配合工作?

0 投票
1 回答
990 浏览
提问于 2025-04-15 16:05

我在用Qt Designer和Pyqt4做一个简单的例子。当我在Qt Designer里预览界面(按控制键加R)时,效果很好。但是当我尝试运行生成的UI代码时,布局就不太对劲了,窗口里的控件没有自动调整大小,反而变得很小,根本没法用。

如果我设置固定大小的话,就能正常工作。

我用来加载窗口的代码是:

import sys

from PyQt4 import QtCore, QtGui

from table import Ui_table

class Main(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.ui = Ui_table()
        self.ui.setupUi(self)

def main():
    app = QtGui.QApplication(sys.argv)
    window=Main()
    window.show()

    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

还有用Qt Designer生成UI代码的xml文件,里面有一个简单的控件被最大化:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>table</class>
 <widget class="QWidget" name="table">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>457</width>
    <height>422</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QVBoxLayout" name="verticalLayout">
   <item>
    <widget class="QTreeWidget" name="list">
     <column>
      <property name="text">
       <string>name</string>
      </property>
     </column>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>

有没有什么建议呢?

操作系统:Windows XP
Python版本:Python 2.6.3
PyQt4版本:4.6.1

1 个回答

0

这听起来有点复杂,但我想问的是,代码里用到了QMainWindow和XML的界面描述,这些定义了一个QWidget(窗口部件)。我不太确定这是不是问题所在,但我觉得这样写看起来不是特别对。

撰写回答