Как изменить ширину вкладок в QPlainTextEdit - PullRequest
0 голосов
/ 05 мая 2018

При использовании QPlaintextEdit в PyQt5, если я нажимаю кнопку Tab на моей клавиатуре, я получаю пространство табуляции, которое равно размеру шести пробелов вместе. Но я хочу, чтобы он был размером с четыре пробела, чтобы при использовании:

TextEdit.setPlainTextEdit('\t')

Я должен получить отступ для табуляции, который в целом равен четырем пробелам.

Я попытался использовать четыре пробела вместо табуляции, но все усложнилось, поскольку код стал более длинным.

1 Ответ

0 голосов
/ 05 мая 2018

Ширина вкладки может быть установлена ​​с помощью 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)

Большим недостатком этого метода является то, что он принимает только значения integer . Это означает, что не гарантируется получение точных результатов со шрифтами, которые имеют нецелую ширину символов (например, шрифты DejaVu и многие другие).

...