使用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并按下回车键来导航到特定的网页,并使用前进、后退和刷新按钮浏览网页。
