aboutsummaryrefslogtreecommitdiffstats
path: root/examples/axcontainer/axviewer
diff options
context:
space:
mode:
Diffstat (limited to 'examples/axcontainer/axviewer')
-rw-r--r--examples/axcontainer/axviewer/axviewer.py48
-rw-r--r--examples/axcontainer/axviewer/axviewer.pyproject3
-rw-r--r--examples/axcontainer/axviewer/doc/axviewer.pngbin0 -> 16158 bytes
-rw-r--r--examples/axcontainer/axviewer/doc/axviewer.rst9
4 files changed, 60 insertions, 0 deletions
diff --git a/examples/axcontainer/axviewer/axviewer.py b/examples/axcontainer/axviewer/axviewer.py
new file mode 100644
index 000000000..a591b1689
--- /dev/null
+++ b/examples/axcontainer/axviewer/axviewer.py
@@ -0,0 +1,48 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+from __future__ import annotations
+
+"""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())
diff --git a/examples/axcontainer/axviewer/axviewer.pyproject b/examples/axcontainer/axviewer/axviewer.pyproject
new file mode 100644
index 000000000..b054d6f18
--- /dev/null
+++ b/examples/axcontainer/axviewer/axviewer.pyproject
@@ -0,0 +1,3 @@
+{
+ "files": ["axviewer.py"]
+}
diff --git a/examples/axcontainer/axviewer/doc/axviewer.png b/examples/axcontainer/axviewer/doc/axviewer.png
new file mode 100644
index 000000000..7ce6ad8a4
--- /dev/null
+++ b/examples/axcontainer/axviewer/doc/axviewer.png
Binary files differ
diff --git a/examples/axcontainer/axviewer/doc/axviewer.rst b/examples/axcontainer/axviewer/doc/axviewer.rst
new file mode 100644
index 000000000..51f50426d
--- /dev/null
+++ b/examples/axcontainer/axviewer/doc/axviewer.rst
@@ -0,0 +1,9 @@
+Ax Viewer Example
+=================
+
+A simple example to use QAxWidget and access all the
+available components.
+
+.. image:: axviewer.png
+ :width: 400
+ :alt: Ax Viewer Screenshot