QTextEdit扩展直到完全可见

时间:2017-03-21 00:53:00

标签: qt pyside qtextedit qvboxlayout

我有一个QDialogQVBoxLayout),其中包含以下小部件:QTextEditQLabel[layout stretch]QPushButton

问题在于我希望QTextEdit能够与QDialog一起扩展,但只有在滚动条消失之后,布局拉伸才会开始扩展,从而显示{{1}之间的差距}和QLabel

有什么理由可以解决这个问题? 注意:QDialog可以调整大小,QTextEdit可以自动换行。

编辑:对于Qt4 / PySide,以下内容应该可以正常工作

QPushButton

1 个答案:

答案 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();
  }
};