赞
踩
本文整理汇总了Python中QWebEngineView加载网页的4种方式的典型用法代码示例。如果您正苦于以下问题:Python QWebEngineView.setHtml方法的具体用法?可以参考本文看一下。
在Python中,我们通常使用PyQt5或PySide2库来使用Qt的QWebEngineView。QWebEngineView是一个小部件,可以用来显示网页。
QWebEngineView.load方法用于加载并显示一个URL指定的页面。它需要一个QUrl对象作为参数。
QWebEngineView.setHtml方法用于设置当前页面的HTML内容。它需要一个字符串作为参数,该字符串包含要显示的HTML内容。
self.qwebengine.load(url)
self.qwebengine.load(本地文件)
self.qwebengine.setHtml(本地文件)
self.qwebengine.setHtml(URL)
- # 显示web界面,为了测试显示的效果,这里提供了四种方式,挨个试试吧。
- def displayWeb4InvalidImage(self):
- pattern = x_base.get_op_ehart_js('')
- replacement = r"eCharts/echarts.min.js"
- displayMode = x_base.get_op_display_mode('')
- if displayMode == '1': # self.qwebengine.load(url)
- page = XWebEnginePage(self.frame)
- self.qwebengine.setPage(page)
- self.qwebengine.load(QtCore.QUrl(x_base.get_op_web_url("")))
- elif displayMode == '2': # self.qwebengine.load(本地文件)
- page = XWebEnginePage(self.frame)
- self.qwebengine.setPage(page)
- dir = Path(__file__).parent.parent
- # # 下面的代码是每次更新本地文件的代码
- res = self.xutireco.x_utireco_gethtml()
- if res != None:
- # res = re.sub(pattern, replacement, res)
- res = res.replace(pattern, replacement)
- # 方法2:setHtml
- try:
- f = open(Path(dir, 'web.html'), 'w', encoding='utf-8')
- f.write(res)
- f.close()
- except IOError as e:
- pass
- dir = str(Path(dir, 'web.html'))
- dir = dir.replace('\\', '/')
- dir = r'file:///' + dir
- self.qwebengine.load(QtCore.QUrl(dir))
-
- elif displayMode == '3': # self.qwebengine.setHtml(本地文件)
- page = XWebEnginePage(self.frame)
- self.qwebengine.setPage(page)
- dir = Path(__file__).parent.parent
- res = self.xutireco.x_utireco_gethtml()
- if res != None:
- # res = re.sub(pattern, replacement, res)
-
- res = res.replace(pattern, replacement)
- # 方法2:setHtml
- try:
- f = open(Path(dir, 'web.html'), 'w', encoding='utf-8')
- f.write(res)
- f.close()
- except IOError as e:
- pass
- f = open(Path(dir, 'web.html'), "r", encoding='utf-8')
-
- self.qwebengine.setHtml(f.read())
- else:
- f = open(Path(dir, 'web.html'), "r", encoding='utf-8')
- page = XWebEnginePage(self.frame)
- self.qwebengine.setPage(page)
-
- self.qwebengine.setHtml(f.read())
- elif displayMode == '4': # self.qwebengine.setHtml(URL)
- page = XWebEnginePage(self.frame)
- self.qwebengine.setPage(page)
- res = self.xutireco.x_utireco_gethtml()
- if res != None:
- res = res.replace(pattern, replacement)
- # 方法2:setHtml
- self.qwebengine.setHtml(res)

- ###############################################################################
- # © © © © © © © © © © © © © © © © © © © © ©
- # © © © © © © © © © © © © ©
- # © © © © © © © © © © © © © © © © © © © ©
- # © © © © © © © © © © © © ©
- # © © © © © © © © © © © © © © © © © © © © ©
- ###############################################################################
- from PyQt5.QtWebEngineWidgets import QWebEnginePage
-
- #
- class XWebEnginePage(QWebEnginePage):
- # def __init__(self, *__args):
- # QWebEnginePage.__init__(self, *__args)
- # pass
-
- def certificateError(self, error):
- error.ignoreCertificateError()
- return True

当时在实际的项目应用时,因为使用场景是需要根据业务情况,及时刷新这个web的数据。使用了上述四种方式尝试,在测试系统都没有问题。但是在生产系统使用时,经常是白屏状态。原因未知。后来,就没有加载web,而是直接在python里直接画了一份图表来展示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。