如何在PyQt4中设置子窗口大小与其父窗口的自动调整大小?
我的pyQt4应用程序有主对话框,它的内容选项卡控件然后是它的子组件。如何在PyQt4中设置子窗口大小与其父窗口的自动调整大小?
我想要的是,当用户点击最大化按钮或调整大小主窗口,然后按Tab控件的大小以及其零部件的位置应自动更新。
像java swing应用程序中的水平调整大小,垂直可调整大小的属性。
如果您在Qt Designer中创建了对话框,请确保您已正确设置所有布局。
要下手,右键单击标签控件的每个选项卡,然后从菜单中选择Layout/Layout in a Grid
。工具栏上还有一个按钮,它可以做同样的事情(图标是一个蓝色小方格)。
一旦你设置每个选项卡上的布局,做同样的事情为主要形式为好。
注意,有时更容易选择和比窗体本身Object Inspector中右键单击该项目。对象检查器还会在窗体中的每个项目旁边显示一个图标,该图标已被赋予布局。
一旦你设置你所有的布局,使用Form/Preview...
检查一切正常,你的预期。
谢谢ekhumoro,它的工作原理! – anils 2012-01-22 15:10:22
使用布局如QHBoxLayout
或QVBoxLayout
。
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication([])
win = QMainWindow()
frame = QFrame()
win.setCentralWidget(frame)
layout = QHBoxLayout()
frame.setLayout(layout)
layout.addWidget(QPushButton("Expanding Button"))
layout.addWidget(QPushButton("Another Expanding Button"))
win.show()
app.exec_()
这会QHBoxLayout
内添加两个QPushButton
s到一个QMainWindow
。这意味着他们将彼此相邻,并且他们将分别填满他们的一半窗口。 QPushButton
s恰巧只能水平填充(除非您设置了大小策略),但QTabWidget
将填充所有可用空间。
在这里得到了解决方案! http://*.com/questions/3492739/auto-expanding-layout-with-qt-designer – anils 2012-01-22 15:12:37