QTextEdit 中的文本失真
Text in QTextEdit is distorted
我有一个 QTextEdit
,我想在其中设置一些由 ASCII Art 文本渲染器生成的文本 (unicode)。一切正常,除了 QTextEdit
扭曲了文本。屏幕截图显示了通过 setText()
在 QTextEdit
中设置并记录到控制台的相同 unicode 文本变量,它在其中正确显示。
如果我使用QTextEdit
或QPlainTextEdit
,或者我是否通过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)
我有一个 QTextEdit
,我想在其中设置一些由 ASCII Art 文本渲染器生成的文本 (unicode)。一切正常,除了 QTextEdit
扭曲了文本。屏幕截图显示了通过 setText()
在 QTextEdit
中设置并记录到控制台的相同 unicode 文本变量,它在其中正确显示。
如果我使用QTextEdit
或QPlainTextEdit
,或者我是否通过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)