欢迎访问宙启技术站
智能推送

使用PyQt5.QtWebEngineWidgets创建自定义浏览器窗口

发布时间:2023-12-25 20:36:11

PyQt5.QtWebEngineWidgets是一个用于创建自定义浏览器窗口的模块,它基于Qt WebEngine技术,能够加载和显示网页内容。下面是一个使用PyQt5.QtWebEngineWidgets创建自定义浏览器窗口的简单示例:

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


class BrowserWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建一个WebView对象
        self.webview = QWebEngineView()

        # 设置窗口标题
        self.setWindowTitle("Custom Browser")

        # 将WebView对象设置为窗口的中心部件
        self.setCentralWidget(self.webview)

        # 加载初始URL
        self.webview.load(QUrl("https://www.google.com"))

        # 将工具栏添加到窗口中
        toolbar = QToolBar()
        self.addToolBar(toolbar)

        # 添加地址栏
        urlbar = QLineEdit()
        urlbar.returnPressed.connect(self.navigate)
        toolbar.addWidget(urlbar)
        self.webview.urlChanged.connect(lambda url: urlbar.setText(url.toString()))

        # 添加前进、后退和刷新按钮
        back_btn = QAction("Back", self)
        back_btn.triggered.connect(self.webview.back)
        toolbar.addAction(back_btn)

        forward_btn = QAction("Forward", self)
        forward_btn.triggered.connect(self.webview.forward)
        toolbar.addAction(forward_btn)

        refresh_btn = QAction("Refresh", self)
        refresh_btn.triggered.connect(self.webview.reload)
        toolbar.addAction(refresh_btn)

    def navigate(self):
        # 导航到地址栏中的URL
        urlbar = self.sender()
        url = QUrl(urlbar.text())
        self.webview.load(url)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    # 创建BrowserWindow对象
    window = BrowserWindow()
    window.show()

    sys.exit(app.exec_())

在上面的示例中,我们创建了一个名为BrowserWindow的自定义浏览器窗口类。我们使用QWebEngineView创建了一个WebView对象,并将其设置为窗口的中心部件。然后,我们加载初始化URL,并在窗口上设置一个工具栏。工具栏包含一个地址栏、前进、后退和刷新按钮。

当用户在地址栏中输入URL并按下回车键时,我们通过connect方法将navigate函数与返回Pressed信号连接起来。在navigate函数中,我们通过sender方法获取发送信号的对象,然后从地址栏中获取URL并使用QWebEngineView的load方法导航到该URL。

最后,我们创建了一个QApplication对象,实例化了BrowserWindow类,并通过show方法显示窗口。

运行上述代码,将会打开一个带有自定义浏览器窗口的应用程序。用户可以在地址栏中输入URL并按下回车键来导航到特定的网页,并使用前进、后退和刷新按钮浏览网页。