python浏览器2代码QZQ

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

class WebView(QWebEngineView):
def init(self, parent):
super().init(parent)

def createWindow(self, webWindowType):
    return main_demo.browser

class MainDemo(QMainWindow):
def init(self, *args, **kwargs):
super().init(*args, **kwargs)
self.setWindowTitle(‘MWB浏览器’)
self.setWindowIcon(QIcon(‘icons/penguin.png’))
self.resize(800, 500)
self.show()
# 添加URL地址栏
self.urlbar = QLineEdit()
# 让地址栏支持输入地址回车访问
self.urlbar.returnPressed.connect(self.navigate_to_url)
# 添加标签栏
self.tabs = QTabWidget()
self.tabs.setDocumentMode(True)
self.tabs.tabBarDoubleClicked.connect(self.tab_open)
self.tabs.currentChanged.connect(self.current_tab_changed)
# 允许关闭标签
self.tabs.setTabsClosable(True)
# 设置关闭按钮的槽
self.tabs.tabCloseRequested.connect(self.close_current_tab)
self.add_new_tab(QUrl(‘https://www.baidu.com/’), ‘百度一下,你就知道’)
self.setCentralWidget(self.tabs)
new_tab_action = QAction(QIcon(‘icons/add_page.png’), ‘New Page’, self)
new_tab_action.triggered.connect(self.add_new_tab)
# 添加导航栏
navigation_bar = QToolBar(‘Navigation’)
# 设定图标大小
navigation_bar.setIconSize(QSize(24, 24))
self.addToolBar(navigation_bar)
# 添加前进、后退、停止加载和刷新的按钮
back_button = QAction(QIcon(‘icons/back.png’), ‘Back’, self)
forward_button = QAction(QIcon(‘icons/forward.png’), ‘Forward’, self)
stop_button = QAction(QIcon(‘icons/stop.png’), ‘Stop’, self)
reload_button = QAction(QIcon(‘icons/renew.png’), ‘Reload’, self)
back_button.triggered.connect(self.tabs.currentWidget().back)
forward_button.triggered.connect(self.tabs.currentWidget().forward)
stop_button.triggered.connect(self.tabs.currentWidget().stop)
reload_button.triggered.connect(self.tabs.currentWidget().reload)
# 将按钮添加到导航栏上
navigation_bar.addAction(back_button)
navigation_bar.addAction(forward_button)
navigation_bar.addAction(stop_button)
navigation_bar.addAction(reload_button)
navigation_bar.addSeparator()
navigation_bar.addWidget(self.urlbar)

# 响应回车按钮,将浏览器当前访问的URL设置为用户输入的URL
def navigate_to_url(self):
    current_url = QUrl(self.urlbar.text())
    if current_url.scheme() == '':
        current_url.setScheme('http')
    self.tabs.currentWidget().load(current_url)

# 将当前网页的链接更新到地址栏
def renew_urlbar(self, url, browser=None):
    # 非当前窗口不更新URL
    if browser != self.tabs.currentWidget():
        return
    self.urlbar.setText(url.toString())
    self.urlbar.setCursorPosition(0)

# 添加新的标签页
def add_new_tab(self, qurl=QUrl(''), label='Blank'):
    # 设置浏览器
    self.browser = WebView(self)
    self.browser.load(qurl)
    # 为标签添加索引方便管理
    i = self.tabs.addTab(self.browser, label)
    self.tabs.setCurrentIndex(i)
    self.browser.urlChanged.connect(lambda qurl, browser=self.browser: self.renew_urlbar(qurl, self.browser))
    # 将标签标题改为网页相关的标题
    self.browser.loadFinished.connect(
        lambda _, i=i, browser=self.browser: self.tabs.setTabText(i, self.browser.page().title()))

# 双击标签栏打开新页面
def tab_open(self, i):
    if i == -1:
        self.add_new_tab()

def current_tab_changed(self, i):
    qurl = self.tabs.currentWidget().url()
    self.renew_urlbar(qurl, self.tabs.currentWidget())

def close_current_tab(self, i):
    # 若当前标签页只有一个则不关闭
    if self.tabs.count() < 2:
        return
    self.tabs.removeTab(i)

if name == ‘main’:
my_application = QApplication(sys.argv) # 创建QApplication类的实例
main_demo = MainDemo()
main_demo.show()
my_application.exec_()

浏览器组件
pip install PyQt5
pip install PyQtWebEngine

源代码下载地址:https://download.csdn.net/download/qq_32257509/89808825

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易软科技(河源)有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值