龙空技术网

python学习源码分享:简易浏览器

琴棋书画788 394

前言:

现在同学们对“webview加载url”大体比较着重,看官们都需要知道一些“webview加载url”的相关知识。那么小编同时在网上网罗了一些对于“webview加载url””的相关文章,希望大家能喜欢,兄弟们快快来了解一下吧!

import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWebEngineWidgets import QWebEngineViewimport datetimecurr_time=datetime.datetime.now()time = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')time1 = datetime.datetime.strftime(curr_time, '%Y年%m月%d日')# 创建主窗口class MainWindow(QMainWindow):  def __init__(self, *args, **kwargs):    super().__init__(*args, **kwargs)    # 设置窗口标题    self.setWindowTitle('简易浏览器      by琴棋书画          今天是:{}'.format(time1) )    # 设置窗口大小900*600    self.resize(1300, 700)    self.show()    # 创建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(";))    self.create_tab(self.webview)    # 使用QToolBar创建导航栏,并使用QAction创建按钮    # 添加导航栏    navigation_bar = QToolBar('Navigation')    # 设定图标的大小    navigation_bar.setIconSize(QSize(16, 16))    # 添加导航栏到窗口中    self.addToolBar(navigation_bar)    # 添加前进、后退、停止加载和刷新的按钮    back_button = QAction(QIcon('icons/houtui.png'), '后退', self)    next_button = QAction(QIcon('icons/qianjin.png'), '前进', self)    stop_button = QAction(QIcon('icons/close.png'), '关闭', self)    reload_button = QAction(QIcon('icons/shuaxin.png'), '刷新', self)    # 绑定事件    back_button.triggered.connect(self.webview.back)    next_button.triggered.connect(self.webview.forward)    stop_button.triggered.connect(self.webview.stop)    reload_button.triggered.connect(self.webview.reload)    # 将按钮添加到导航栏上    navigation_bar.addAction(back_button)    navigation_bar.addAction(next_button)    navigation_bar.addAction(stop_button)    navigation_bar.addAction(reload_button)    # 添加URL地址栏    self.urlbar = QLineEdit()    # 让地址栏能响应回车按键信号    self.urlbar.returnPressed.connect(self.navigate_to_url)    navigation_bar.addSeparator()    navigation_bar.addWidget(self.urlbar)    # 让浏览器相应url地址的变化    self.webview.urlChanged.connect(self.renew_urlbar)  # 显示地址  def navigate_to_url(self):    q = QUrl(self.urlbar.text())    if q.scheme() == '':      q.setScheme('http')    self.webview.setUrl(q)  # 响应输入的地址  def renew_urlbar(self, q):    # 将当前网页的链接更新到地址栏    self.urlbar.setText(q.toString())    self.urlbar.setCursorPosition(0)  # 创建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时,关闭主窗口# 创建浏览器,重写重写createwindow方法实现页面连接的点击跳转class WebEngineView(QWebEngineView):  def __init__(self, mainwindow, parent=None):    super(WebEngineView, self).__init__(parent)    self.mainwindow = mainwindow  # 重写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)  # 创建主窗口  browser = MainWindow()  browser.show()  # 运行应用,并监听事件  sys.exit(app.exec_())

标签: #webview加载url #python浏览器