在PyQt5中使用QPlaintextEdit时,如果我按下键盘上的 Tab 按钮,我会得到一个大小为六个空格的制表空间。但我希望它是四个空格的大小,所以当我使用时:
TextEdit.setPlainTextEdit('\t')
我应该得到一个标签空间的缩进,它总共有四个空格。
我尝试使用四个空格而不是标签空间,但事情变得复杂,因为代码变得更加冗长。
答案 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字体和许多其他字体)给出准确的结果。