diff options
Diffstat (limited to 'examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py')
-rw-r--r-- | examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py new file mode 100644 index 000000000..2db865996 --- /dev/null +++ b/examples/webenginewidgets/widgetsnanobrowser/widgetsnanobrowser.py @@ -0,0 +1,70 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +"""PySide6 WebEngineWidgets Example""" + +import sys +from PySide6.QtCore import QUrl, Slot +from PySide6.QtGui import QIcon +from PySide6.QtWidgets import (QApplication, QLineEdit, + QMainWindow, QPushButton, QToolBar) +from PySide6.QtWebEngineCore import QWebEnginePage +from PySide6.QtWebEngineWidgets import QWebEngineView + + +class MainWindow(QMainWindow): + + def __init__(self): + super().__init__() + + self.setWindowTitle('PySide6 WebEngineWidgets Example') + + self.toolBar = QToolBar() + self.addToolBar(self.toolBar) + self.backButton = QPushButton() + self.backButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/left-32.png')) + self.backButton.clicked.connect(self.back) + self.toolBar.addWidget(self.backButton) + self.forwardButton = QPushButton() + self.forwardButton.setIcon(QIcon(':/qt-project.org/styles/commonstyle/images/right-32.png')) + self.forwardButton.clicked.connect(self.forward) + self.toolBar.addWidget(self.forwardButton) + + self.addressLineEdit = QLineEdit() + self.addressLineEdit.returnPressed.connect(self.load) + self.toolBar.addWidget(self.addressLineEdit) + + self.webEngineView = QWebEngineView() + self.setCentralWidget(self.webEngineView) + initialUrl = 'http://qt.io' + self.addressLineEdit.setText(initialUrl) + self.webEngineView.load(QUrl(initialUrl)) + self.webEngineView.page().titleChanged.connect(self.setWindowTitle) + self.webEngineView.page().urlChanged.connect(self.urlChanged) + + @Slot() + def load(self): + url = QUrl.fromUserInput(self.addressLineEdit.text()) + if url.isValid(): + self.webEngineView.load(url) + + @Slot() + def back(self): + self.webEngineView.page().triggerAction(QWebEnginePage.Back) + + @Slot() + def forward(self): + self.webEngineView.page().triggerAction(QWebEnginePage.Forward) + + @Slot(QUrl) + def urlChanged(self, url): + self.addressLineEdit.setText(url.toString()) + + +if __name__ == '__main__': + app = QApplication(sys.argv) + mainWin = MainWindow() + availableGeometry = mainWin.screen().availableGeometry() + mainWin.resize(availableGeometry.width() * 2 / 3, availableGeometry.height() * 2 / 3) + mainWin.show() + sys.exit(app.exec()) |