我想在QTextEdit中显示文本。我使用format()函数对齐文本并使它看起来像一张干净的桌子。尽管在外壳中显示文本时得到了完美的结果,但是文本似乎在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”指示选择固定间距字体,因此仍要遵循对齐方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句