PyQt5|PySide2 UI界面内嵌web浏览器的方法
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浏览器的方法相关推荐
- goahead内嵌web——用户登录
goahead设备内嵌web--环境搭建 基于前一章节环境搭建的基础上,goahead用户登录操作流程. 在web资源目录下创建一个用户登录的HTML文件,login.html文件代码内容如下 < ...
- 内嵌WEB服务器加载原理
内嵌WEB服务器加载原理 理解里面的tomcat是如何启动的 Startup.bat Server.start() 1,概述 我们在使用springboot项目的时候并没有使用外部的tomcat,那么 ...
- MFC内嵌web页面
MFC内嵌web页面 方法一: 1.新建工程,插入ActiveX控件Microsoft Web Browser 2.添加关联变量WebDlg 3.添加代码WebDlg.Navigate(_T(&quo ...
- .NET5 开发手机提词应用,基于内嵌Web服务器及PowerPoint自动化
项目说明 我使用电脑录制视频教程的时候,会展示PPT给观众,同时也有一些提示性的文字给我自己看.这就类似于很多电视节目录制现场的"提词器". 节目录制现场的提词器 在PC环境下,P ...
- 三维视频融合 开放源代码 混合模式 内嵌web容器 c++ js 混合开发 时空克隆引擎 数字孪生 点卯 系列 魔镜系列
元宇宙的兴起,让以三维视频融合与三维投影融合为核心.以倾斜摄影和三维地图构筑的CIM作为托底的时空克隆引擎,成为时代的主流技术,以此打造了混合架构的魔镜平台 济南用魔镜打造元宇宙城市,难道是真的? 开 ...
- 三维视频融合 倾斜摄影模型 开放c++源代码 支持与java js交互 内嵌web容器 可用于雪亮工程 等 安防项目 稳定流畅 点卯系列
元宇宙的兴起,让以三维视频融合与三维投影融合为核心.以倾斜摄影和三维地图构筑的CIM作为托底的时空克隆引擎,成为时代的主流技术,以此打造了混合架构的魔镜平台 济南用魔镜打造元宇宙城市,难道是真的? 开 ...
- kail linux纯文本浏览器,在Linux Mint/Kali Linux上安装Vivaldi Web浏览器的方法
本文介绍在Linux Mint/Kali Linux操作系统上安装Vivaldi Web浏览器的方法,只需要下面两个步骤即可,即先添加APT存储库然后运行命令安装. 一.添加APT存储库 Vivald ...
- Markdown内嵌图片的解决方法
Markdown内嵌图片的解决方法 文章目录 Markdown内嵌图片的解决方法 问题与解决方案 一.实现功能 二.脚本制作 1.利用文件选择框选择文件或者从剪贴板读取图像 2.将图片转为Base64 ...
- Python - PyQT5开发UI界面 - 环境搭建
没有做过UI界面的都会把UI的制作想象的很神秘,我在刚开始的时候也是感觉异常神秘.很复杂.并且无从下手,不过在真正的做出来一个界面后,发现也并没有想象中的那么难,而且做出来可视化的东西所带来的成就感是 ...
- 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存
目录 一.写在前面: 1.浏览器缓存带来的好处: 2.浏览器缓存带来的弊端: 二.如何清除微信浏览器的缓存: 1.在IOS环境下手动清除微信缓存: 2.在Android环境下手动清除微信缓存: 三.清 ...
最新文章
- 【opencv】ubuntu14.04上编译opencv2.4
- 前后落差大用什么词语_夸迪是什么“鬼”——爱上夸迪之心路历程
- 细数二十世纪最伟大的十大算法
- vue 方法里面修改样式_vue中修改swiper样式
- php管理员登录文件,快速的事情,只有管理员,PHP才能访问文件
- QT的QGraphicsItem类的使用
- mapreduce 算法_MapReduce算法–了解数据联接第1部分
- java tostring方法_Java虚拟机如执行方法调用的(二)?
- 教你使用Python实现新个税计算器
- 左神小和问题逆序对问题面试
- 个推开发者服务进阶之路
- 网页看视频计算机休眠,晚上挂着下电影怎么让电脑不休眠 Win7关闭休眠图文教程...
- 恐怖谷与深度爵士:计算机艺术能达到人类的高峰吗
- python图像识别与提取_python图像识别与提取
- 用canvas画一个太极八卦图
- 改变input框disabled 属性的背景颜色以及字体颜色
- 在WeChat上搭建ChatGpt机器人
- 巴别塔合约作战终端开发日记2——Linux系统部署项目
- html5游戏截图分享,那些精妙绝伦的官方游戏截图,其实是这样做出来的
- 天润融通网络电话配置手册