PyQt5|PySide2 程序内嵌web浏览器的方法

内嵌web浏览器

有时候,我们需要在程序中嵌入浏览器,显示一个指定的网页。

Qt5中,有一个 QtWebEngineWidgets 模块,通过它,可以启动基于Chromium的浏览器(和chrome是同样的内核)进程,并且把web界面内嵌入 Qt程序中。

参考官网说明

案例

我们可以实现一个内嵌浏览器,打开白月黑羽网站。

整个案例的参考代码,点击这里下载

链接:https://pan.baidu.com/s/1FBLdSU0w_LYSsPUzVjsQsA 提取码:byhy

首先使用Qt designer设计界面。

注意:显示web内容的是 QtWebEngineWidgets 模块里面的 QWebEngineView类。

所以需要 premote 一个QtWindget 控件为 QWebEngineView。详见参考代码中的ui文件。

创建完界面后,使用命令

pyside2-uic main.ui > ui_main.py

把界面定义转化为Python代码。

然后,编写如下代码,使用 QWebEngineView 打开网址

from PySide2.QtWidgets import QApplication,QMainWindow
from ui_main import Ui_MainWindowclass MainWindow(QMainWindow):def __init__(self):super().__init__()# 使用ui文件导入定义界面类self.ui = Ui_MainWindow()# 初始化界面self.ui.setupUi(self)# 使用界面定义的控件,也是从ui里面访问self.ui.webview.load('http://www.baidu.com/')app = QApplication([])
mainw = MainWindow()
mainw.show()
app.exec_()

上述代码的一个问题,就是不能打开新标签页,如果要支持,可以使用QTabWidget。参考代码如下

from PySide2.QtCore import *
from PySide2.QtWidgets import *
from PySide2.QtWebEngineWidgets import *class TabWidget(QTabWidget):def __init__(self, *args, **kwargs):QTabWidget.__init__(self, *args, **kwargs)url = QUrl("https://www.163.com")view = HtmlView(self)view.load(url)ix = self.addTab(view, "加载中 ...")self.resize(800, 600)class HtmlView(QWebEngineView):def __init__(self, *args, **kwargs):QWebEngineView.__init__(self, *args, **kwargs)self.tab = self.parent()def createWindow(self, windowType):if windowType == QWebEnginePage.WebBrowserTab:webView = HtmlView(self.tab)ix = self.tab.addTab(webView, "加载中 ...")self.tab.setCurrentIndex(ix)return webViewreturn QWebEngineView.createWindow(self, windowType)if __name__ == "__main__":import sysapp = QApplication(sys.argv)main = TabWidget()main.show()sys.exit(app.exec_())

PyQt5|PySide2 UI界面内嵌web浏览器的方法相关推荐

  1. goahead内嵌web——用户登录

    goahead设备内嵌web--环境搭建 基于前一章节环境搭建的基础上,goahead用户登录操作流程. 在web资源目录下创建一个用户登录的HTML文件,login.html文件代码内容如下 < ...

  2. 内嵌WEB服务器加载原理

    内嵌WEB服务器加载原理 理解里面的tomcat是如何启动的 Startup.bat Server.start() 1,概述 我们在使用springboot项目的时候并没有使用外部的tomcat,那么 ...

  3. MFC内嵌web页面

    MFC内嵌web页面 方法一: 1.新建工程,插入ActiveX控件Microsoft Web Browser 2.添加关联变量WebDlg 3.添加代码WebDlg.Navigate(_T(&quo ...

  4. .NET5 开发手机提词应用,基于内嵌Web服务器及PowerPoint自动化

    项目说明 我使用电脑录制视频教程的时候,会展示PPT给观众,同时也有一些提示性的文字给我自己看.这就类似于很多电视节目录制现场的"提词器". 节目录制现场的提词器 在PC环境下,P ...

  5. 三维视频融合 开放源代码 混合模式 内嵌web容器 c++ js 混合开发 时空克隆引擎 数字孪生 点卯 系列 魔镜系列

    元宇宙的兴起,让以三维视频融合与三维投影融合为核心.以倾斜摄影和三维地图构筑的CIM作为托底的时空克隆引擎,成为时代的主流技术,以此打造了混合架构的魔镜平台 济南用魔镜打造元宇宙城市,难道是真的? 开 ...

  6. 三维视频融合 倾斜摄影模型 开放c++源代码 支持与java js交互 内嵌web容器 可用于雪亮工程 等 安防项目 稳定流畅 点卯系列

    元宇宙的兴起,让以三维视频融合与三维投影融合为核心.以倾斜摄影和三维地图构筑的CIM作为托底的时空克隆引擎,成为时代的主流技术,以此打造了混合架构的魔镜平台 济南用魔镜打造元宇宙城市,难道是真的? 开 ...

  7. kail linux纯文本浏览器,在Linux Mint/Kali Linux上安装Vivaldi Web浏览器的方法

    本文介绍在Linux Mint/Kali Linux操作系统上安装Vivaldi Web浏览器的方法,只需要下面两个步骤即可,即先添加APT存储库然后运行命令安装. 一.添加APT存储库 Vivald ...

  8. Markdown内嵌图片的解决方法

    Markdown内嵌图片的解决方法 文章目录 Markdown内嵌图片的解决方法 问题与解决方案 一.实现功能 二.脚本制作 1.利用文件选择框选择文件或者从剪贴板读取图像 2.将图片转为Base64 ...

  9. Python - PyQT5开发UI界面 - 环境搭建

    没有做过UI界面的都会把UI的制作想象的很神秘,我在刚开始的时候也是感觉异常神秘.很复杂.并且无从下手,不过在真正的做出来一个界面后,发现也并没有想象中的那么难,而且做出来可视化的东西所带来的成就感是 ...

  10. 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存

    目录 一.写在前面: 1.浏览器缓存带来的好处: 2.浏览器缓存带来的弊端: 二.如何清除微信浏览器的缓存: 1.在IOS环境下手动清除微信缓存: 2.在Android环境下手动清除微信缓存: 三.清 ...

最新文章

  1. 【opencv】ubuntu14.04上编译opencv2.4
  2. 前后落差大用什么词语_夸迪是什么“鬼”——爱上夸迪之心路历程
  3. 细数二十世纪最伟大的十大算法
  4. vue 方法里面修改样式_vue中修改swiper样式
  5. php管理员登录文件,快速的事情,只有管理员,PHP才能访问文件
  6. QT的QGraphicsItem类的使用
  7. mapreduce 算法_MapReduce算法–了解数据联接第1部分
  8. java tostring方法_Java虚拟机如执行方法调用的(二)?
  9. 教你使用Python实现新个税计算器
  10. 左神小和问题逆序对问题面试
  11. 个推开发者服务进阶之路
  12. 网页看视频计算机休眠,晚上挂着下电影怎么让电脑不休眠 Win7关闭休眠图文教程...
  13. 恐怖谷与深度爵士:计算机艺术能达到人类的高峰吗
  14. python图像识别与提取_python图像识别与提取
  15. 用canvas画一个太极八卦图
  16. 改变input框disabled 属性的背景颜色以及字体颜色
  17. 在WeChat上搭建ChatGpt机器人
  18. 巴别塔合约作战终端开发日记2——Linux系统部署项目
  19. html5游戏截图分享,那些精妙绝伦的官方游戏截图,其实是这样做出来的
  20. 天润融通网络电话配置手册

热门文章

  1. s7200cpu224xp手册_西门子S7-200模块CPU224XPCN可编程控制器
  2. 富文本编辑器内容存储至Mysql
  3. smtp服务器组件,配置exchange Smtp服务器
  4. 博客整理002-KICAD生成gerber板厂打不开的原因
  5. 基于Windows 7环境的WAPI无线网络应用层控制实现
  6. (附源码)ssm财务管理系统 毕业设计 282251
  7. iOS中的armv6、armv7、armv7s含义详解
  8. 设为首页 加入收藏代码
  9. 使用计算机软件,计算机使用软件
  10. 企业数字化转型,运营人员如何构建数字化运营能力?