summaryrefslogtreecommitdiff
path: root/examples/hello_widgets.py
diff options
context:
space:
mode:
authorafix.space <laurent@afix.space>2026-07-09 19:34:22 +0200
committerafix.space <laurent@afix.space>2026-07-09 19:34:22 +0200
commit5c369a5d98dbab80903dfcb7c52625c78228e789 (patch)
treee17ac19cc282778dd14aa6cdac3b50481e55e9ea /examples/hello_widgets.py
feat: PySide6 dev environment with runnable examplesHEADmain
Flake devShell (PySide6 6.11 on Python 3.13, designer, uic/rcc from qtbase libexec, offline docs) plus hello_widgets and hello_quick examples. QML_IMPORT_PATH exported — nixpkgs PySide6 finds platform plugins on its own but not QML imports; see README.
Diffstat (limited to 'examples/hello_widgets.py')
-rw-r--r--examples/hello_widgets.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/hello_widgets.py b/examples/hello_widgets.py
new file mode 100644
index 0000000..926fff6
--- /dev/null
+++ b/examples/hello_widgets.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+"""Minimal PySide6 Widgets app: a counter demonstrating signals/slots."""
+
+import sys
+
+from PySide6.QtWidgets import (
+ QApplication,
+ QLabel,
+ QPushButton,
+ QVBoxLayout,
+ QWidget,
+)
+
+
+def main() -> int:
+ app = QApplication(sys.argv)
+
+ window = QWidget()
+ window.setWindowTitle("Hello PySide6")
+
+ label = QLabel("Clics : 0")
+ button = QPushButton("Cliquer")
+
+ count = 0
+
+ def on_click() -> None:
+ nonlocal count
+ count += 1
+ label.setText(f"Clics : {count}")
+
+ button.clicked.connect(on_click)
+
+ layout = QVBoxLayout(window)
+ layout.addWidget(label)
+ layout.addWidget(button)
+
+ window.resize(240, 100)
+ window.show()
+ return app.exec()
+
+
+if __name__ == "__main__":
+ sys.exit(main())