当前位置:   article > 正文

38.Python中QWebEngineView使用方法示例_python qwebengineview

python qwebengineview

本文整理汇总了Python中QWebEngineView加载网页的4种方式的典型用法代码示例。如果您正苦于以下问题:Python QWebEngineView.setHtml方法的具体用法?可以参考本文看一下。

概述

在Python中,我们通常使用PyQt5或PySide2库来使用Qt的QWebEngineView。QWebEngineView是一个小部件,可以用来显示网页。

QWebEngineView.load方法用于加载并显示一个URL指定的页面。它需要一个QUrl对象作为参数。

QWebEngineView.setHtml方法用于设置当前页面的HTML内容。它需要一个字符串作为参数,该字符串包含要显示的HTML内容。

下文示例中演示了4种使用示例,仅供参考

self.qwebengine.load(url)

self.qwebengine.load(本地文件)

self.qwebengine.setHtml(本地文件)

self.qwebengine.setHtml(URL)

示例代码

示例代码1,displayWeb4InvalidImage

  1. # 显示web界面,为了测试显示的效果,这里提供了四种方式,挨个试试吧。
  2. def displayWeb4InvalidImage(self):
  3. pattern = x_base.get_op_ehart_js('')
  4. replacement = r"eCharts/echarts.min.js"
  5. displayMode = x_base.get_op_display_mode('')
  6. if displayMode == '1': # self.qwebengine.load(url)
  7. page = XWebEnginePage(self.frame)
  8. self.qwebengine.setPage(page)
  9. self.qwebengine.load(QtCore.QUrl(x_base.get_op_web_url("")))
  10. elif displayMode == '2': # self.qwebengine.load(本地文件)
  11. page = XWebEnginePage(self.frame)
  12. self.qwebengine.setPage(page)
  13. dir = Path(__file__).parent.parent
  14. # # 下面的代码是每次更新本地文件的代码
  15. res = self.xutireco.x_utireco_gethtml()
  16. if res != None:
  17. # res = re.sub(pattern, replacement, res)
  18. res = res.replace(pattern, replacement)
  19. # 方法2:setHtml
  20. try:
  21. f = open(Path(dir, 'web.html'), 'w', encoding='utf-8')
  22. f.write(res)
  23. f.close()
  24. except IOError as e:
  25. pass
  26. dir = str(Path(dir, 'web.html'))
  27. dir = dir.replace('\\', '/')
  28. dir = r'file:///' + dir
  29. self.qwebengine.load(QtCore.QUrl(dir))
  30. elif displayMode == '3': # self.qwebengine.setHtml(本地文件)
  31. page = XWebEnginePage(self.frame)
  32. self.qwebengine.setPage(page)
  33. dir = Path(__file__).parent.parent
  34. res = self.xutireco.x_utireco_gethtml()
  35. if res != None:
  36. # res = re.sub(pattern, replacement, res)
  37. res = res.replace(pattern, replacement)
  38. # 方法2:setHtml
  39. try:
  40. f = open(Path(dir, 'web.html'), 'w', encoding='utf-8')
  41. f.write(res)
  42. f.close()
  43. except IOError as e:
  44. pass
  45. f = open(Path(dir, 'web.html'), "r", encoding='utf-8')
  46. self.qwebengine.setHtml(f.read())
  47. else:
  48. f = open(Path(dir, 'web.html'), "r", encoding='utf-8')
  49. page = XWebEnginePage(self.frame)
  50. self.qwebengine.setPage(page)
  51. self.qwebengine.setHtml(f.read())
  52. elif displayMode == '4': # self.qwebengine.setHtml(URL)
  53. page = XWebEnginePage(self.frame)
  54. self.qwebengine.setPage(page)
  55. res = self.xutireco.x_utireco_gethtml()
  56. if res != None:
  57. res = res.replace(pattern, replacement)
  58. # 方法2:setHtml
  59. self.qwebengine.setHtml(res)

示例代码2,XWebEnginePage

  1. ###############################################################################
  2. # © © © © © © © © © © © © © © © © © © © © ©
  3. # © © © © © © © © © © © © ©
  4. # © © © © © © © © © © © © © © © © © © © ©
  5. # © © © © © © © © © © © © ©
  6. # © © © © © © © © © © © © © © © © © © © © ©
  7. ###############################################################################
  8. from PyQt5.QtWebEngineWidgets import QWebEnginePage
  9. #
  10. class XWebEnginePage(QWebEnginePage):
  11. # def __init__(self, *__args):
  12. # QWebEnginePage.__init__(self, *__args)
  13. # pass
  14. def certificateError(self, error):
  15. error.ignoreCertificateError()
  16. return True

结论

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/839045
推荐阅读
相关标签
  

闽ICP备14008679号