2016-06-09 109 views
1

我想在QTextEdit中顯示文本。我使用format()函數來對齊文本並使其看起來像一張乾淨的表格。儘管在shell中顯示文本時我得到了一個完美的結果,但是文本看起來並沒有在QTextEdit中對齊,就像字符寬度變化一樣。我主要看到字符「 - 」出現時的區別。使用Python中的QTextEdit中的格式對齊文本

>>> first_line = "{:<10} {:<3} - {:<20}".format("1234", "EUR", "Mrs Smith") 
>>> second_line = "{:<10} {:<3} - {:<20}".format("-45.62", "GBP", "M Doe") 
>>> print first_line, "\n", second_line 
1234  EUR - Mrs Smith 
-45.62  GBP - M Doe 

在shell中的預期結果。但是使用QTextEdit時,由於您可以看到「EUR」和「GBP」之間的細微差別,所以對齊方式不正確。在這個例子中沒有太多,但是當我使用更多的線時,它看起來確實不太合適。

my_text_edit = QTextEdit() 
my_text_edit.append(first_line) 
my_text_edit.append(second_line) 

the alignment of the text is not right in this QTextEdit

我試圖用QPlainTextEdit,得到了相同的結果。無論如何,得到我想要的QTextEdit/QPlainTextEdit?或者我應該使用另一個顯示小部件(不需要編輯,標籤可以,但我喜歡文本編輯的外觀)?

+2

你在'QTextEdit'實例中使用了什麼字體? – quamrana

+0

好問題。我沒有指定任何特定的字體,所以我猜是默認的字體。我試圖設置「等寬」字體,現在間距很好!我在Windows上,但一定會在Mac上使用我的程序,所以我試圖使用systemFont函數來檢索默認的固定寬度字體,但似乎無法使其工作。我正在使用PySide 1.2.4版本 – Enaid

回答

2

我使用的是沒有固定寬度的默認字體,因此沒有對齊。字體設置爲像「等寬」固定寬度的字體解決我的問題:

fixed_font = QFont("monospace") 
fixed_font.setStyleHint(QFont.TypeWriter) 
my_text_edit.setFont(fixed_font) 

我用「setStyleHint」表示,如果「等寬」沒有在系統上找到的是Qt應該使用哪一種字體,「QFont .TypeWriter「表示選擇固定間距字體,因此對齊仍然受到尊重。

+0

感謝您發佈解決方案:) –