QTextEdit中的文字失真

时间:2016-12-27 22:04:31

标签: pyside python-unicode qtextedit

我有一个QTextEdit,其中我想设置一些由ASCII Art文本渲染器生成的文本(unicode)。除了QTextEdit扭曲文本外,一切正常。屏幕截图显示QTextEdit通过setText()设置的同一个unicode文本变量,并记录到控制台,正确显示。

QTextEdit distorts text

如果我使用QTextEditQPlainTextEdit,或者我通过setText(ascii_art_text)setPlainText(ascii_art_text)设置文字,则无关紧要。我在这里使用PySide,但我怀疑在这种情况下并不太感兴趣。

如何修复失真?

1 个答案:

答案 0 :(得分:5)

从您的示例的外观来看,您的QTextEdit似乎没有使用等宽字体,这是终端和文本编辑器通常使用的字体。使用等宽字体创建QFont。如,

# Specific Windows monospaced font.
font = QFont("Courier New")

根据Torsten Marek在answer中的How to specify monospace fonts for cross platform Qt applications?,您可以获得跨平台等宽字体:

font = QFont("Monospace")
font.setStyleHint(QFont.TypeWriter)

确定字体后,请将其分配到QTextEdit

text_edit.setCurrentFont(font)