我有一个QDialog
(QVBoxLayout
),其中包含以下小部件:QTextEdit
,QLabel
,[layout stretch]
,QPushButton
问题在于我希望QTextEdit
能够与QDialog
一起扩展,但只有在滚动条消失之后,布局拉伸才会开始扩展,从而显示{{1}之间的差距}和QLabel
。
有什么理由可以解决这个问题? 注意:QDialog可以调整大小,QTextEdit可以自动换行。
编辑:对于Qt4 / PySide,以下内容应该可以正常工作
QPushButton
答案 0 :(得分:1)
这比看起来更难:
def subset(a,b):
base=[]
if base == []:
base.append((a,b))
return base
elif (a,b) in base:
base.append(subset(a,b+1))
base.append(subset(a+1,b+1))
base.append(subset(a+2,b+1))
return base
for number in range(0,5):
for number2 in range(0,5):
print(*subset(number,number2))
这个想法是使视口大小提示对应于文档的大小,并使滚动区域调整到视口的大小。您还必须确保在将新行添加到文档时通知布局。
最后一个难题是给你的弹力项目一个更大的伸展因子,这样它就不会开始与编辑共享空间:
class TextEdit : public QTextEdit
{
public:
TextEdit(QWidget *parent = nullptr)
: QTextEdit(parent)
{
setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
connect(this, &TextEdit::textChanged, this, &TextEdit::updateGeometry);
}
QSize viewportSizeHint() const override
{
return document()->size().toSize();
}
};