QTextEdit 中的文本失真
Posted
技术标签:
【中文标题】QTextEdit 中的文本失真【英文标题】:Text in QTextEdit is distorted 【发布时间】:2016-12-27 22:04:31 【问题描述】:我有一个QTextEdit
,我想在其中设置一些由 ASCII Art 文本渲染器生成的文本 (unicode)。一切正常,除了QTextEdit
扭曲了文本。屏幕截图显示了在 QTextEdit
中通过 setText()
设置的相同 unicode 文本变量,并记录到控制台,在那里它可以正确显示。
我是否使用QTextEdit
或QPlainTextEdit
,或者我是否通过setText(ascii_art_text)
或setPlainText(ascii_art_text)
设置文本似乎并不重要。我在这里使用 PySide,但我怀疑在这种情况下并没有太大的兴趣。
任何想法如何解决这种失真?
【问题讨论】:
【参考方案1】:从您的示例看起来,您的 QTextEdit
似乎没有使用终端和文本编辑器通常使用的等宽字体。使用等宽字体创建QFont。例如,
# Specific Windows monospaced font.
font = QFont("Courier New")
根据 Torsten Marek 在How to specify monospace fonts for cross platform Qt applications? 中的answer,您可以获得跨平台等宽字体:
font = QFont("Monospace")
font.setStyleHint(QFont.TypeWriter)
确定字体后,将其分配给您的QTextEdit
:
text_edit.setCurrentFont(font)
【讨论】:
以上是关于QTextEdit 中的文本失真的主要内容,如果未能解决你的问题,请参考以下文章
具有不同文本颜色的 QTextEdit (Qt / C++)