如何更改QPlainTextEdit

时间:2018-05-05 15:06:11

标签: python-3.x pyqt5 indentation qplaintextedit

在PyQt5中使用QPlaintextEdit时,如果我按下键盘上的 Tab 按钮,我会得到一个大小为六个空格的制表空间。但我希望它是四个空格的大小,所以当我使用时:

TextEdit.setPlainTextEdit('\t')

我应该得到一个标签空间的缩进,它总共有四个空格。

我尝试使用四个空格而不是标签空间,但事情变得复杂,因为代码变得更加冗长。

1 个答案:

答案 0 :(得分:5)

可以使用setTabStopDistance设置标签的宽度。这需要一个浮点值,可以使用QFontMetricsF类计算:

textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopDistance(
    QtGui.QFontMetricsF(textedit.font()).width(' ') * 4)

但是,此方法仅在Qt-5.10中引入,因此对于Qt4和旧版本的Qt5,必须使用setTabStopWidth(现在已将其记录为过时):

textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopWidth(textedit.fontMetrics().width(' ') * 4)

此方法的最大缺点是它只需要整数值。这意味着无法保证使用具有非整数字符宽度的字体(例如DejaVu字体和许多其他字体)给出准确的结果。