增加 QTextEdit 中的底部边距
Increase the bottom margin in QTextEdit
即使行数小于QTextEdit的高度,我也需要启用滚动条,如下图
我试过 setDocumentMargin()
但它在所有方向(左、右、上和下)都有边距
那么,有没有办法只增加 QTextEdit 的底部边距。
如果你观察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)
即使行数小于QTextEdit的高度,我也需要启用滚动条,如下图
我试过 setDocumentMargin()
但它在所有方向(左、右、上和下)都有边距
那么,有没有办法只增加 QTextEdit 的底部边距。
如果你观察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)