我有一些python代码可以生成一些我希望能够在窗口中打印或显示的信息。
整个窗口将用于显示格式丰富的文本(粗体,斜体,彩色字体,各种字体大小等)。该文本也应该是只读的。此外,光标不应该是可见的。就像在网络浏览器中一样。
我应该使用哪个PyQt类?如果可以使用QTextEdit
完成此操作,请告诉我如何将其设置为只读并将各种格式应用于文本。如果任何其他PyQt类更适合此,请告诉我。< / p>
更新:我找到了这个课程: http://pyqt.sourceforge.net/Docs/PyQt4/qtextdocument.html 它说
QTextDocument是结构化富文本文档的容器,支持样式化文本和各种类型的文档元素,例如列表,表格,框架和图像。它们可以创建用于QTextEdit,也可以单独使用。
使用QTextDocument
类而不是直接使用QTextEdit
是否有优势?
答案 0 :(得分:12)
您可能仍想使用QTextEdit
。 QTextEdit
的实例可以通过以下方式变为只读:
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>')