【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