QTextEdit 中的文本失真

Text in QTextEdit is distorted

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



如果我使用QTextEditQPlainTextEdit,或者我是否通过setText(ascii_art_text)setPlainText(ascii_art_text)设置文本似乎并不重要。我在这里使用的是 PySide,但我怀疑在这种情况下没有太多兴趣。


有什么办法可以解决这个问题吗?

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

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

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

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

确定字体后,将其分配给您的 QTextEdit:

text_edit.setCurrentFont(font)