【Python】基于PyQt5实现简易浏览器
时间:2019-08-14
本文章向大家介绍【Python】基于PyQt5实现简易浏览器,主要包括【Python】基于PyQt5实现简易浏览器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
from PyQt5 import QtWidgets,QtCore,QtGui from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys,os,requests from PyQt5.QtWebEngineWidgets import * class UI(QMainWindow,): def __init__(self): super(UI, self).__init__() self.setWindowTitle('Web browser') self.resize(680,480) self.setWindowIcon(QtGui.QIcon('./liulanqi.png')) self.main_toolbar = QtWidgets.QToolBar() self.main_toolbar.setIconSize(QtCore.QSize(16,16)) self.addToolBar(self.main_toolbar) self.tabs = QtWidgets.QTabWidget() self.tabs.setDocumentMode(True) self.tabs.setTabsClosable(True) self.tabs_layout = QtWidgets.QGridLayout() self.tabs.setLayout(self.tabs_layout) self.url_edit = QtWidgets.QLineEdit() self.browser = QWebEngineView() Url = 'http://www.baidu.com' self.browser.setUrl(QtCore.QUrl(Url)) self.tabs_layout.addWidget(self.browser) self.tabs.addTab(self.browser,'') self.browser.loadFinished.connect(lambda :self.tabs.setTabText(0,self.browser.page().title())) self.setCentralWidget(self.tabs) self.turn_button = QAction(QIcon('./zhuandao.png'),'Turn',self) self.back_button = QAction(QIcon('./fanhui.png'),'Back',self) self.next_button = QAction(QIcon('./tiaozhuan.png'),'Forward',self) self.stop_button = QAction(QIcon('./close.png'),'Stop',self) self.reload_button = QAction(QIcon('./shuaxin.png'),'Reload',self) self.add_button = QAction(QIcon('./add.png'),'Addpage',self) self.main_toolbar.addAction(self.back_button) self.main_toolbar.addAction(self.next_button) self.main_toolbar.addAction(self.stop_button) self.main_toolbar.addAction(self.reload_button) self.main_toolbar.addAction(self.add_button) self.main_toolbar.addWidget(self.url_edit) self.main_toolbar.addAction(self.turn_button) self.back_button.triggered.connect(self.browser.back) self.next_button.triggered.connect(self.browser.forward) self.stop_button.triggered.connect(self.browser.close) self.reload_button.triggered.connect(self.browser.reload) self.turn_button.triggered.connect(self.OpenUrlLine) self.browser.urlChanged.connect(self.setUrlLine) self.tabs.tabBarDoubleClicked.connect(self.NewPage) self.add_button.triggered.connect(self.NewPage) self.tabs.tabCloseRequested.connect(self.Closepage) def setUrlLine(self,url): self.url_edit.setText(url.toString()) def OpenUrlLine(self): self.urlline = self.url_edit.text() print(self.urlline) self.browser.setUrl(QtCore.QUrl(self.urlline)) def NewPage(self,url='http://www.baidu.com',label=''): browser = QWebEngineView() Url = 'http://www.baidu.com' browser.setUrl(QtCore.QUrl(Url)) i = self.tabs.addTab(browser,label) self.tabs.setCurrentIndex(i) print(i) browser.loadFinished.connect(lambda :self.tabs.setTabText(i,browser.page().title())) def Closepage(self,i): if self.tabs.count() < 2: return self.tabs.removeTab(i) if __name__ == '__main__': app = QApplication(sys.argv) gui = UI() gui.show() sys.exit(app.exec_())
git:https://github.com/zxingwork/Py/tree/master/Webbrowser
还有观看视频和下载文件的问题暂未解决,有什么建议多多指教,一起交流。
原文地址:https://www.cnblogs.com/zxingwork/p/11349555.html
- UESTC 1584 Washi与Sonochi的约定【树状数组裸题+排序】
- Hyperledger - 超级账本项目:简介,安装,案例
- 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现
- 我的第二个网页制作:p,hn,br标签的使用
- 超级账本项目:架构设计
- 我的第四个网页制作:列表标签
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp
- 虎嗅主站盲打成功(已进后台)
- 我的第五个网页制作:pre、html转义、abbr标签的使用
- UVALive 3882 - And Then There Was One【约瑟夫问题】
- 超级账本项目:链码示例
- 我的第六个网页制作:table标签
- POJ 1163 The Triangle【dp+杨辉三角加强版(递归)】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法