diff options
Diffstat (limited to 'examples/axcontainer/axviewer/axviewer.py')
-rw-r--r-- | examples/axcontainer/axviewer/axviewer.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/axcontainer/axviewer/axviewer.py b/examples/axcontainer/axviewer/axviewer.py new file mode 100644 index 000000000..bcd4c2714 --- /dev/null +++ b/examples/axcontainer/axviewer/axviewer.py @@ -0,0 +1,47 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +"""PySide6 Active Qt Viewer example""" + +import sys +from PySide6.QtAxContainer import QAxSelect, QAxWidget +from PySide6.QtGui import QAction +from PySide6.QtWidgets import (QApplication, QDialog, + QMainWindow, QMessageBox, QToolBar) + + +class MainWindow(QMainWindow): + + def __init__(self): + super().__init__() + + toolBar = QToolBar() + self.addToolBar(toolBar) + fileMenu = self.menuBar().addMenu("&File") + loadAction = QAction("Load...", self, shortcut="Ctrl+L", triggered=self.load) + fileMenu.addAction(loadAction) + toolBar.addAction(loadAction) + exitAction = QAction("E&xit", self, shortcut="Ctrl+Q", triggered=self.close) + fileMenu.addAction(exitAction) + + aboutMenu = self.menuBar().addMenu("&About") + aboutQtAct = QAction("About &Qt", self, triggered=qApp.aboutQt) # noqa: F821 + aboutMenu.addAction(aboutQtAct) + self.axWidget = QAxWidget() + self.setCentralWidget(self.axWidget) + + def load(self): + axSelect = QAxSelect(self) + if axSelect.exec() == QDialog.Accepted: + clsid = axSelect.clsid() + if not self.axWidget.setControl(clsid): + QMessageBox.warning(self, "AxViewer", f"Unable to load {clsid}.") + + +if __name__ == '__main__': + app = QApplication(sys.argv) + mainWin = MainWindow() + availableGeometry = mainWin.screen().availableGeometry() + mainWin.resize(availableGeometry.width() / 3, availableGeometry.height() / 2) + mainWin.show() + sys.exit(app.exec()) |