aboutsummaryrefslogtreecommitdiffstats
path: root/examples/async/minimal/minimal_asyncio.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/async/minimal/minimal_asyncio.py')
-rw-r--r--examples/async/minimal/minimal_asyncio.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/examples/async/minimal/minimal_asyncio.py b/examples/async/minimal/minimal_asyncio.py
new file mode 100644
index 000000000..a6c4708b3
--- /dev/null
+++ b/examples/async/minimal/minimal_asyncio.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget)
+
+import PySide6.QtAsyncio as QtAsyncio
+
+import asyncio
+import sys
+
+
+class MainWindow(QMainWindow):
+
+ def __init__(self):
+ super().__init__()
+
+ widget = QWidget()
+ self.setCentralWidget(widget)
+
+ layout = QVBoxLayout(widget)
+
+ self.text = QLabel("The answer is 42.")
+ layout.addWidget(self.text, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async_trigger = QPushButton(text="What is the question?")
+ async_trigger.clicked.connect(lambda: asyncio.ensure_future(self.set_text()))
+ layout.addWidget(async_trigger, alignment=Qt.AlignmentFlag.AlignCenter)
+
+ async def set_text(self):
+ await asyncio.sleep(1)
+ self.text.setText("What do you get if you multiply six by nine?")
+
+
+if __name__ == "__main__":
+ app = QApplication(sys.argv)
+ main_window = MainWindow()
+ main_window.show()
+
+ QtAsyncio.run(handle_sigint=True)