圆月山庄资源网 Design By www.vgjia.com
一.支持视频播放
关键代码
self.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True) #支持视频播放
二.支持页面关闭请求
关键代码
self.page().windowCloseRequested.connect(self.on_windowCloseRequested) #页面关闭请求
三.支持页面下载请求
关键代码
self.page().profile().downloadRequested.connect(self.on_downloadRequested) #页面下载请求
完整源码
【如下代码,完全复制,直接运行,即可使用】
import sys import os import datetime from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import QWebEngineView,QWebEngineSettings # 调试窗口配置 # 如果不想自己创建调试窗口,可以使用Chrome连接这个地址进行调试 DEBUG_PORT = '5588' DEBUG_URL = 'http://127.0.0.1:%s' % DEBUG_PORT os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = DEBUG_PORT ################################################ #######创建主窗口 ################################################ class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('My Browser') #self.showMaximized() self.setWindowFlags(Qt.FramelessWindowHint) #####创建tabwidget self.tabWidget = QTabWidget() self.tabWidget.setTabShape(QTabWidget.Triangular) self.tabWidget.setDocumentMode(True) self.tabWidget.setMovable(True) self.tabWidget.setTabsClosable(True) self.tabWidget.tabCloseRequested.connect(self.close_Tab) self.setCentralWidget(self.tabWidget) ####第一个tab self.webview = WebEngineView(self) #self必须要有,是将主窗口作为参数,传给浏览器 self.webview.load(QUrl("https://www.baidu.com")) self.create_tab(self.webview) #网页调试窗口 self.inspector = QWebEngineView() self.inspector.setWindowTitle('Web Inspector') self.inspector.load(QUrl(DEBUG_URL)) self.webview.loadFinished.connect(self.handleHtmlLoaded) # 加载完成后显示调试网页 def handleHtmlLoaded(self, ok): if ok: self.webview.page().setDevToolsPage(self.inspector.page()) self.inspector.show() #创建tab def create_tab(self,webview): self.tab = QWidget() self.tabWidget.addTab(self.tab, "新标签页") self.tabWidget.setCurrentWidget(self.tab) ##### self.Layout = QHBoxLayout(self.tab) self.Layout.setContentsMargins(0, 0, 0, 0) self.Layout.addWidget(webview) #关闭tab def close_Tab(self,index): if self.tabWidget.count()>1: self.tabWidget.removeTab(index) else: self.close() # 当只有1个tab时,关闭主窗口 ################################################ #######创建浏览器 ################################################ class WebEngineView(QWebEngineView): def __init__(self,mainwindow,parent=None): super(WebEngineView, self).__init__(parent) self.mainwindow = mainwindow ############## self.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True) #支持视频播放 self.page().windowCloseRequested.connect(self.on_windowCloseRequested) #页面关闭请求 self.page().profile().downloadRequested.connect(self.on_downloadRequested) #页面下载请求 # 支持页面关闭请求 def on_windowCloseRequested(self): the_index = self.mainwindow.tabWidget.currentIndex() self.mainwindow.tabWidget.removeTab(the_index) # 支持页面下载按钮 def on_downloadRequested(self,downloadItem): if downloadItem.isFinished()==False and downloadItem.state()==0: ###生成文件存储地址 the_filename = downloadItem.url().fileName() if len(the_filename) == 0 or "." not in the_filename: cur_time = datetime.datetime.now().strftime('%Y%m%d%H%M%S') the_filename = "下载文件" + cur_time + ".xls" the_sourceFile = os.path.join(os.getcwd(), the_filename) ###下载文件 # downloadItem.setSavePageFormat(QWebEngineDownloadItem.CompleteHtmlSaveFormat) downloadItem.setPath(the_sourceFile) downloadItem.accept() downloadItem.finished.connect(self.on_downloadfinished) # 下载结束触发函数 def on_downloadfinished(self): js_string = ''' alert("下载成功,请到软件同目录下,查找下载文件!"); ''' self.page().runJavaScript(js_string) # 重写createwindow() def createWindow(self, QWebEnginePage_WebWindowType): new_webview = WebEngineView(self.mainwindow) self.mainwindow.create_tab(new_webview) return new_webview ################################################ #######程序入门 ################################################ if __name__ == "__main__": app = QApplication(sys.argv) the_mainwindow = MainWindow() the_mainwindow.show() sys.exit(app.exec())
以上就是PyQt5的QWebEngineView使用示例的详细内容,更多关于PyQt5的QWebEngineView的资料请关注其它相关文章!
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章