我的某个应用中有一个不可编辑的QTextEdit小部件。根据组合框的选择,我希望显示其他信息。
我目前的方法是从目录加载HTML文件并在QTextEdit-Field中显示它们。这听起来很简单(使用函数setHtml或insertHtml),但不知何故并不像我想象的那样直接。我相信我必须首先解析或加载文件。我怎么能继续?
h = (helpdir + str + ".html") # contains the helpfiles path (Format QString)
# Load in HTML?
textfield.insertHtml(h) # Should somehow insert the html
欢迎使用易于实施的其他方法(特别是根据帮助的未来翻译)。如果没有额外的库或非基础软件包,我会赞成任何解决方案。
答案 0 :(得分:2)
是的,您必须先加载HTML文件,然后再将其插入QTextEdit
。但这样做非常简单:
f = QFile("path/to/your/htmlfile")
f.open(QFile.ReadOnly|QFile.Text)
istream = QTextStream(f)
textfield.setHtml(istream.readAll())
f.close()
它工作得很好(假设您的HTML文件不是很大)。如果文件更符合您的需求,您也可以逐行阅读文件。
答案 1 :(得分:1)
你可以使用QtWebKit这是在qt中使用html内容的最佳方式。它应该与您的python qt安装一起提供。看看下面的代码:
<强> test.py 强>
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
app = QtGui.QApplication(sys.argv)
view = QtWebKit.QWebView()
view.setHtml(open('test.html').read())
window = QtGui.QMainWindow()
window.setCentralWidget(view)
window.show()
sys.exit(app.exec_())
<强>的test.html 强>
<html><body><h1>test page</h1>testing...</body></html>