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

ast*_*123 8 python user-interface pyqt pyqt4

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

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

我应该使用哪个PyQt类?如果可以使用QTextEdit,请告诉我如何使它只读,并将各种格式应用于文本.如果任何其他PyQt类更适合这个,请告诉我.

更新:我发现这个类:http: //pyqt.sourceforge.net/Docs/PyQt4/qtextdocument.html 它说

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

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

thr*_*les 14

你可能还想用QTextEdit.QTextEdit可以通过以下方式将实例设置为只读:

my_text_edit.setReadOnly(True)
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用QTextCursors或使用setHtml()它来插入/附加文本,从而允许您设置文本编辑的全部内容.格式化语法是基本的HTML,比如<b>等等.你可以在这里阅读更多关于它的内容:http://qt-project.org/doc/qt-4.8/qtextedit.html#using-qtextedit-as-a-display-小部件

但一个简单的例子就是

my_text_edit.textCursor().insertHtml('normal text')
my_text_edit.textCursor().insertHtml('<b>bold text</b>')
Run Code Online (Sandbox Code Playgroud)