如何在PyQt4中设置子窗口大小相对于其父窗口自动调整大小?

如何在PyQt4中设置子窗口大小相对于其父窗口自动调整大小?,qt,pyqt4,qt-designer,Qt,Pyqt4,Qt Designer,我的pyQt4应用程序有主对话框和it内容选项卡控件,然后是其中的子组件 我想要的是,当用户单击“最大化”按钮或调整主窗口大小时,选项卡控件大小及其组件位置应该自动更新 与java swing应用程序中的水平可调整大小、垂直可调整大小的属性类似。使用布局,如QHBoxLayout或QVBoxLayout from PySide.QtCore import * from PySide.QtGui import * app = QApplication([]) win = QMainWindow

我的pyQt4应用程序有主对话框和it内容选项卡控件,然后是其中的子组件

我想要的是,当用户单击“最大化”按钮或调整主窗口大小时,选项卡控件大小及其组件位置应该自动更新


与java swing应用程序中的水平可调整大小、垂直可调整大小的属性类似。

使用布局,如
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
窗口中添加两个
QPushButton
。这意味着他们将在一起,他们将各自占据他们的半个窗口
QPushButton
s碰巧只能水平填充(除非您设置大小策略),但是
QTabWidget
将填充所有可用空间。

使用布局,例如
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
窗口中添加两个
QPushButton
。这意味着他们将在一起,他们将各自占据他们的半个窗口
QPushButton
s碰巧只是水平填充(除非您设置了大小策略),但是
QTabWidget
将填充所有可用空间。

如果您在Qt Designer中创建了对话框,请确保已正确设置所有布局

首先,右键单击选项卡小部件的每个选项卡,然后从菜单中选择
Layout/Layout in a Grid
。工具栏上还有一个按钮可以做同样的事情(图标是一个由蓝色小方格组成的网格)

在每个选项卡上设置布局后,对主窗体也执行相同的操作

请注意,在对象检查器中选择和右键单击项目有时比表单本身更容易。“对象检查器”还在表单中给定布局的每个项目旁边显示一个图标


设置完所有布局后,使用
表单/预览…
检查所有内容是否按预期工作。

如果在Qt Designer中创建了对话框,请确保正确设置了所有布局

首先,右键单击选项卡小部件的每个选项卡,然后从菜单中选择
Layout/Layout in a Grid
。工具栏上还有一个按钮可以做同样的事情(图标是一个由蓝色小方格组成的网格)

在每个选项卡上设置布局后,对主窗体也执行相同的操作

请注意,在对象检查器中选择和右键单击项目有时比表单本身更容易。“对象检查器”还在表单中给定布局的每个项目旁边显示一个图标

设置好所有布局后,使用
Form/Preview…
检查所有布局是否按预期工作。

这里有解决方案!这里有解决办法!