When using the QPlaintextEdit in PyQt5, if I press the Tab button on my keyboard I get a tab space which is equal to size of six spaces together. But I want it to be the size of four spaces, so that when I use:
TextEdit.setPlainTextEdit('\t')
我应该得到一个制表符空格的缩进,总共有四个空格那么长。
我尝试使用四个空格而不是制表符空格,但事情变得复杂,因为代码变得越来越长。
选项卡的宽度可以设置为设置制表位距离 https://doc.qt.io/qt-5/qplaintextedit.html#tabStopDistance-prop。这需要一个浮点值,可以使用以下公式计算QFontMetricsF https://doc.qt.io/qt-5/qfontmetricsf.html class:
textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopDistance(
QtGui.QFontMetricsF(textedit.font()).horizontalAdvance(' ') * 4)
不过这个方法是在Qt-5.10才引入的,所以对于Qt4以及老版本的Qt5,必须使用设置制表位宽度 https://doc.qt.io/qt-5/qplaintextedit-obsolete.html(现在已被记录为已过时):
textedit = QtWidgets.QPlainTextEdit()
textedit.setTabStopWidth(textedit.fontMetrics().width(' ') * 4)
这种方法的一大缺点是它只需要integer价值观。这意味着不能保证使用非整数字符宽度的字体(例如 DejaVu 字体和许多其他字体)提供准确的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)