我的pyQt4应用程序有主对话框,内容选项卡控件然后是子组件。
我想要的是,当用户点击最大化按钮或调整主窗口大小时,应该自动更新标签控件大小及其组件位置。
类似于java swing应用程序中的水平可调整大小,垂直可调整大小的属性。
答案 0 :(得分:2)
如果您在Qt Designer中创建了对话框,请确保已正确设置所有布局。
首先,右键单击选项卡小部件的每个选项卡,然后从菜单中选择Layout/Layout in a Grid
。工具栏上还有一个按钮可以执行相同的操作(图标是一个小蓝色方块的网格)。
在每个标签上设置布局后,也可以对主窗体执行相同的操作。
请注意,有时更容易选择并右键单击Object Inspector中的项而不是Form本身。对象检查器还在表单中的每个项目旁边显示一个图标,该图标已被赋予布局。
设置好所有布局后,使用Form/Preview...
检查一切是否符合预期。
答案 1 :(得分:1)
使用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_()
这会在QPushButton
内向QMainWindow
添加两个QHBoxLayout
。这意味着它们将彼此相邻,并且它们将填充它们的一半窗口。 QPushButton
碰巧只是水平填充(除非您设置了尺寸政策),但QTabWidget
将填满所有可用空间。