在Python的QTextEdit中使用格式对齐文本

在Python的QTextEdit中使用格式对齐文本,python,qt,format,qtextedit,Python,Qt,Format,Qtextedit,我想在QTextEdit中显示文本。我使用format()函数对齐文本,使其看起来像一个干净的表格。虽然在shell中显示文本时得到了完美的结果,但文本在QTextEdit中似乎没有对齐,就像字符的宽度变化一样。我主要看到的区别是当字符“-”出现时 >>> first_line = "{:<10} {:<3} - {:<20}".format("1234", "EUR", "Mrs Smith") >>> second_line = "{:&

我想在QTextEdit中显示文本。我使用format()函数对齐文本,使其看起来像一个干净的表格。虽然在shell中显示文本时得到了完美的结果,但文本在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


我尝试使用QPlainTextEdit,得到了相同的结果。无论如何,要通过qtexdit/QPlainTextEdit获得我想要的吗?或者我应该使用另一个显示小部件(不需要编辑,标签可以,但我喜欢文本编辑的外观)?

我使用的默认字体没有固定的宽度,因此不对齐。将字体设置为固定宽度字体(如“monospace”)解决了我的问题:

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

我使用“setStyleHint”来指示如果系统上找不到“monospace”,Qt应该使用哪种字体,“QFont.TypeWriter”指示选择固定间距字体,以便仍然遵守对齐方式。

我使用Unicode间距和python格式来对齐文本或浮动,取得了很好的效果

例如:

self.mlist.append(“{:\u200012.2f}.”格式(mprijs)+\
“{:\u2000>12.2f}”。格式(浮点(mprijs)*浮点(maantal))+\
“{:\u2000>12.2f}”。格式(浮点(mprijs)*浮点(maantal)*mbtw))
self.view.append(self.mlist[-1])

其中self.view是QTextEdit视图

您在
QTextEdit
实例中使用的字体是什么?好问题。我没有指定任何特定的字体,所以我猜是默认字体。我试着设置“monospace”字体,现在间距很好!我在Windows上,但肯定要在Mac上使用我的程序,所以我尝试使用systemFont函数来检索默认的固定宽度字体,但似乎无法使其正常工作。我正在使用PySide版本1.2.4感谢发布解决方案:)
fixed_font = QFont("monospace")
fixed_font.setStyleHint(QFont.TypeWriter)
my_text_edit.setFont(fixed_font)