使用Python中的QTextEdit中的格式对齐文本
问题描述:
我想在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)
我试图用QPlainTextEdit,得到了相同的结果。无论如何,得到我想要的QTextEdit/QPlainTextEdit?或者我应该使用另一个显示小部件(不需要编辑,标签可以,但我喜欢文本编辑的外观)?
答
我使用的是没有固定宽度的默认字体,因此没有对齐。字体设置为像“等宽”固定宽度的字体解决我的问题:
fixed_font = QFont("monospace")
fixed_font.setStyleHint(QFont.TypeWriter)
my_text_edit.setFont(fixed_font)
我用“setStyleHint”表示,如果“等宽”没有在系统上找到的是Qt应该使用哪一种字体,“QFont .TypeWriter“表示选择固定间距字体,因此对齐仍然受到尊重。
+0
感谢您发布解决方案:) –
你在'QTextEdit'实例中使用了什么字体? – quamrana
好问题。我没有指定任何特定的字体,所以我猜是默认的字体。我试图设置“等宽”字体,现在间距很好!我在Windows上,但一定会在Mac上使用我的程序,所以我试图使用systemFont函数来检索默认的固定宽度字体,但似乎无法使其工作。我正在使用PySide 1.2.4版本 – Enaid