Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在QTextEdit小部件中解析和显示HTML_Python_Html_Qt_Qtextedit - Fatal编程技术网

Python 在QTextEdit小部件中解析和显示HTML

Python 在QTextEdit小部件中解析和显示HTML,python,html,qt,qtextedit,Python,Html,Qt,Qtextedit,我的一个应用程序中有一个不可编辑的QTextEdit小部件。根据选择的组合框,我想显示其他信息 我目前的方法是从目录加载HTML文件,并将它们显示在QTextEdit字段中。这听起来很简单(使用函数setHtml或insertHtml),但不知何故,它并不像我想象的那样直接工作。我认为我必须首先解析或加载文件。我怎样才能继续 h = (helpdir + str + ".html") # contains the helpfiles path (Format QString) # Load in

我的一个应用程序中有一个不可编辑的QTextEdit小部件。根据选择的组合框,我想显示其他信息

我目前的方法是从目录加载HTML文件,并将它们显示在QTextEdit字段中。这听起来很简单(使用函数setHtml或insertHtml),但不知何故,它并不像我想象的那样直接工作。我认为我必须首先解析或加载文件。我怎样才能继续

h = (helpdir + str + ".html") # contains the helpfiles path (Format QString)
# Load in HTML?
textfield.insertHtml(h) # Should somehow insert the html
欢迎其他易于实现的方法(特别是考虑到帮助的未来翻译)。我喜欢没有附加库或非基本包的任何解决方案。

您可以使用它,这是在qt中处理html内容的最佳方式。它应该随pythonqt安装一起提供。查看下面的代码:

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>
测试页面测试。。。

是的,在将HTML文件插入
QTextEdit
之前,必须先加载该文件。但这很容易做到:

    f = QFile("path/to/your/htmlfile")
    f.open(QFile.ReadOnly|QFile.Text)
    istream = QTextStream(f)
    textfield.setHtml(istream.readAll())
    f.close()

它工作得很好(假设您的HTML文件不是很大)。如果文件更符合您的需要,您也可以逐行读取。

如果您只想在文本编辑中显示一些html文本,这确实是一个过度使用的解决方案
QtWebKit
是一个完整的web浏览器引擎。