pyqt5的QWebEngineView 使用模板的方法


Posted in Python onAugust 18, 2018

说明1:关于QWebEngineView

pyqt5 已经抛弃 QtWebKit和QtWebKitWidgets,而使用最新的QtWebEngineWidgets。

QtWebEngineWidgets,是基于chrome浏览器内核引擎的。

说明2:关于左键点击页面跳转

其中,最让纠结的就是实现左键点击页面跳转了。

在chrome浏览器上,有些页面,左键点击,会直接创建一个新的tab来呈现网页。

在使用QWebEngineView时,如果不做特殊处理,这样的左键点击,是根本没有反应的。

那怎么办?就需要重写QWebEngineView的createWindow方法。

说明3:关于createWindow方法重写

在重写QWebEngineView的createWindow方法时,又有两种写法。

第一种,是直接在本窗口新建tab的方式。 (不推荐使用这种方式)

注:这种方式有个问题,因为新建的tab覆盖了原来的tab,所以,原来tab的所有信息都找不到了,如浏览,账号,密码等。

class WebEngineView(QWebEngineView):
  # 重写createwindow()
  def createWindow(self, QWebEnginePage_WebWindowType):
    return self

第二种,就是新建窗口的方式了。代码如下。(推荐使用这种方式)

【如下代码,完全复制,直接运行,即可使用】

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView

################################################
#######创建主窗口
################################################
class MainWindow(QMainWindow):
  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.setWindowTitle('My Browser')
    self.showMaximized()

    self.webview = WebEngineView()
    self.webview.load(QUrl("https://www.baidu.com"))
    self.setCentralWidget(self.webview)

################################################
#######创建浏览器
################################################
class WebEngineView(QWebEngineView):
  windowList = []

  # 重写createwindow()
  def createWindow(self, QWebEnginePage_WebWindowType):
    new_webview =  WebEngineView()
    new_window = MainWindow()
    new_window.setCentralWidget(new_webview)
    #new_window.show()
    self.windowList.append(new_window) #注:没有这句会崩溃!!!
    return new_webview

################################################
#######程序入门
################################################
if __name__ == "__main__":
  app = QApplication(sys.argv)
  w = MainWindow()
  w.show()
  sys.exit(app.exec_())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
python生成圆形图片的方法
Mar 25 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
python文件选择对话框的操作方法
Jun 27 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
Keras 使用 Lambda层详解
Jun 10 Python
python解压zip包中文乱码解决方法
Nov 27 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
详解Python类和对象内容
Jun 22 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 Python
python递归全排列实现方法
Aug 18 #Python
python使用PIL给图片添加文字生成海报示例
Aug 17 #Python
Python在for循环中更改list值的方法【推荐】
Aug 17 #Python
Python简单读写Xls格式文档的方法示例
Aug 17 #Python
Python实现的连接mssql数据库操作示例
Aug 17 #Python
Python SQL查询并生成json文件操作示例
Aug 17 #Python
python3 flask实现文件上传功能
Mar 20 #Python
You might like
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Django如何使用redis作为缓存
2020/05/21 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
护士自我介绍信
2014/01/13 职场文书
社区党建工作方案
2014/06/10 职场文书
大学生就业求职信
2014/06/12 职场文书
三八活动策划方案
2014/08/17 职场文书
协议书格式模板
2016/03/24 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python