Python 自动调整QWidget的高度
我想知道,当我编辑包含此小部件的QDialog的高度时,如何创建一个小部件来自动适应空间 在下面的示例中,QPushButton将适合QDialog的宽度,但不适合高度。但是,如果我创建一个QTextEdit而不是QPushButton,那么QTextEdit将完全适合QDialogPython 自动调整QWidget的高度,python,qt,pyqt,Python,Qt,Pyqt,我想知道,当我编辑包含此小部件的QDialog的高度时,如何创建一个小部件来自动适应空间 在下面的示例中,QPushButton将适合QDialog的宽度,但不适合高度。但是,如果我创建一个QTextEdit而不是QPushButton,那么QTextEdit将完全适合QDialog from PySide.QtGui import * class c (QDialog): def __init__(self): QDialog.__init__(self)
from PySide.QtGui import *
class c (QDialog):
def __init__(self):
QDialog.__init__(self)
self.setLayout(QVBoxLayout())
self.layout().setSpacing (0)
self.layout().setContentsMargins(0,0,0,0);
btn = QPushButton()
self.layout().addWidget(btn)
self.exec_()
a = c()
您需要设置要展开的大小策略。 我不知道Python中的语法,但是你可以很容易地从C++中翻译。
QPushButton* button = new QPushButton(this);
button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
州
QBoxLayout::addWidget(widget, stretch=0, alignment=0)
如果拉伸因子为0,并且QBoxLayout中没有任何其他拉伸因子大于零,则空间将根据所涉及的每个小部件的QWidget:sizePolicy()分布
那么看看QPushButton的默认设置
>>> btn = QPushButton()
>>> btn.sizePolicy().horizontalPolicy()
1
>>> btn.sizePolicy().verticalPolicy()
0
我们会发现,垂直策略是固定的。添加按钮式
[...]
btn = QPushButton()
policy = btn.sizePolicy().horizontalPolicy()
btn.setSizePolicy(policy, policy)
self.layout().addWidget(btn)
[...]
现在将自动调整对话框中的按钮