2016-12-27 80 views
1

我有一個QTextEdit其中我想設置一些文本(unicode)已由ASCII藝術文本渲染器生成。一切正常,除了QTextEdit扭曲的文字。屏幕截圖顯示了通過setText()QTextEdit中設置的相同的unicode文本變量,並將其記錄到控制檯,並在其中正確顯示。QTextEdit中的文本扭曲


QTextEdit distorts text


它似乎沒有,如果我使用QTextEditQPlainTextEdit,或者如果我通過setText(ascii_art_text)setPlainText(ascii_art_text)設置文本無關緊要。我在這裏使用PySide,但是我懷疑這種情況並沒有太多興趣。


任何想法如何解決這個失真?

回答

5

從你的例子的外觀看,你的QTextEdit似乎沒有使用終端和文本編輯器通常使用的等寬字體。使用等寬字體創建一個QFont。例如,

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

根據託斯滕馬立克氏answerHow to specify monospace fonts for cross platform Qt applications?,你可以得到一個跨平臺的等寬字體:

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

一旦確定了你的字體,將其分配給您的QTextEdit

text_edit.setCurrentFont(font) 
+0

它工作順利!已接受和已投票,謝謝! – timmwagener