aboutsummaryrefslogtreecommitdiffstats
path: root/examples/uitools/uiloader/uiloader.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/uitools/uiloader/uiloader.py')
-rw-r--r--examples/uitools/uiloader/uiloader.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/uitools/uiloader/uiloader.py b/examples/uitools/uiloader/uiloader.py
new file mode 100644
index 000000000..265c93837
--- /dev/null
+++ b/examples/uitools/uiloader/uiloader.py
@@ -0,0 +1,35 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+"""QUiLoader example, showing how to dynamically load a Qt Designer form
+ from a UI file."""
+
+from argparse import ArgumentParser, RawTextHelpFormatter
+import sys
+
+from PySide6.QtCore import QFile, QIODevice
+from PySide6.QtWidgets import QApplication
+from PySide6.QtUiTools import QUiLoader
+
+
+if __name__ == '__main__':
+ arg_parser = ArgumentParser(description="QUiLoader example",
+ formatter_class=RawTextHelpFormatter)
+ arg_parser.add_argument('file', type=str, help='UI file')
+ args = arg_parser.parse_args()
+ ui_file_name = args.file
+
+ app = QApplication(sys.argv)
+ ui_file = QFile(ui_file_name)
+ if not ui_file.open(QIODevice.ReadOnly):
+ reason = ui_file.errorString()
+ print(f"Cannot open {ui_file_name}: {reason}")
+ sys.exit(-1)
+ loader = QUiLoader()
+ widget = loader.load(ui_file, None)
+ ui_file.close()
+ if not widget:
+ print(loader.errorString())
+ sys.exit(-1)
+ widget.show()
+ sys.exit(app.exec())