如何在PyQt4创建的GUI中以富格式显示一些不可编辑的文本?

时间:2014-08-05 21:42:26

标签: python user-interface pyqt pyqt4

我有一些python代码可以生成一些我希望能够在窗口中打印或显示的信息。

整个窗口将用于显示格式丰富的文本(粗体,斜体,彩色字体,各种字体大小等)。该文本也应该是只读的。此外,光标不应该是可见的。就像在网络浏览器中一样。

我应该使用哪个PyQt类?如果可以使用QTextEdit完成此操作,请告诉我如何将其设置为只读并将各种格式应用于文本。如果任何其他PyQt类更适合此,请告诉我。< / p>

更新:我找到了这个课程: http://pyqt.sourceforge.net/Docs/PyQt4/qtextdocument.html 它说

  

QTextDocument是结构化富文本文档的容器,支持样式化文本和各种类型的文档元素,例如列表,表格,框架和图像。它们可以创建用于QTextEdit,也可以单独使用。

使用QTextDocument类而不是直接使用QTextEdit是否有优势?

1 个答案:

答案 0 :(得分:12)

您可能仍想使用QTextEditQTextEdit的实例可以通过以下方式变为只读:

my_text_edit.setReadOnly(True)

然后,您可以使用QTextCursor或使用setHtml()插入/附加文本,这样您就可以设置文本编辑的全部内容。格式化语法是基本HTML,如<b>等。您可以在此处阅读更多相关内容:http://qt-project.org/doc/qt-4.8/qtextedit.html#using-qtextedit-as-a-display-widget

但是一个简单的例子就是

my_text_edit.textCursor().insertHtml('normal text')
my_text_edit.textCursor().insertHtml('<b>bold text</b>')