在显示之前获取QTextEdit中换行文本的高度

时间:2018-07-15 05:10:32

标签: python pyqt pyqt5 qtextedit

我有一个从QTextEdit继承的类,我想自动调整其高度以适合键入时的文本。我使用下面的代码来完成这一部分:

class GrowingTextEdit(QTextEdit):
    def __init__(self, text):
        super().__init__()
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.document().contentsChanged.connect(self.sizeChange)
        self.setText(text)

        self.setFixedHeight(50)



    def sizeChange(self):
        docHeight = self.document().size().height()
        self.setFixedHeight(docHeight)

但是,我还希望能够在输入文本之前为其提供默认文本,并使其正确调整大小。但是,如果将下面的行放在__init__中,则在创建文本框之前,这些文本框会出现在错误的位置,然后再添加到布局中。没有show(),我得到document()。size()返回0。

self.show()
self.sizeChange()

0 个答案:

没有答案