zoukankan      html  css  js  c++  java
  • 【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

    还有观看视频和下载文件的问题暂未解决,有什么建议多多指教,一起交流。

  • 相关阅读:
    定时器
    js中script的上下放置区别 , Dom的增删改创建
    函数声明与应用
    常规选择器
    表格的制作
    流程控制
    For循环
    洛谷P1419寻找段落
    洛谷P1021邮票面值设计
    洛谷P3119草鉴定
  • 原文地址:https://www.cnblogs.com/zxingwork/p/11349555.html
Copyright © 2011-2022 走看看