增加QTextEdit的底部边距

问题描述 投票:1回答:1

我需要启用滚动条,即使行数小于QTextEdit的高度,如下图

我尝试了setDocumentMargin(),但它在所有方向(左,右,顶部和底部)产生边距

那么,有没有办法只增加QTextEdit的下限。

Edit Area with larger margin

python pyqt pyqt4 qtextedit qplaintextedit
1个回答
0
投票

如果您观察到source code,我们会看到该函数定义如下:

void QTextDocument::setDocumentMargin(qreal margin)
{
    // ...
    QTextFrame* root = rootFrame();
    QTextFrameFormat format = root->frameFormat();
    format.setMargin(margin);
    root->setFrameFormat(format);
    // ...
}

所以我们可以通过函数rootFrame()frameFormat()做同样的事情,如下所示:

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)

    textEdit = QTextEdit()

    format = textEdit.document().rootFrame().frameFormat()
    format.setBottomMargin(10)
    # format.setTopMargin(value)
    # format.setLeftMargin(value)
    # format.setRightMargin(value)
    textEdit.document().rootFrame().setFrameFormat(format)

    textEdit.show()
    sys.exit(app.exec_())

如果您只想显示QTextEdit滚动条,请使用以下命令:

textEdit.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
textEdit.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
© www.soinside.com 2019 - 2024. All rights reserved.