A Qt library extension for building declarative programming -style UIs completely within python.
Project description
Declarative PySide6
decpys (or Dec-larative PyS-ide) is a Python library that acts as a thin wrapper around
the original PySide6 to enable super-fast GUI prototyping
using modern declarative UI techniques completely within Python. decpys is licensed under
GPLv2.
Installation
decpys is available through PyPI. From the command-line, simply:
pip install decpys
Design
decpys is inspired by UI frameworks like React and Flutter. decpys extends the popular
PySide6 Qt library so that Qt widgets can be used in a intuitive, concise manner to build out
declarative-style UI blocks completely within python.
Normally, Qt is used to build UIs in an imperative manner. This means that each widget and its properties must be set, step-by-step. This might look familiar to you:
window = QMainWindow()
widget = QWidget()
label = QLabel()
label.setText("a label")
layout = QVBoxLayout()
layout.addWidget(label)
widget.setLayout(layout)
window.setCentralWidget(widget)
window.setWindowTitle("a window")
It's cumbersome. Qt introduced QML a while back, but that introduces a new syntax and file format to learn. Tools also have to be made in IDEs/editors to give users the speed they seek developing.
Let's take a look at the last example, this time written using decpys:
window = qMainWindow(
title="a window",
centralWidget=qWidget(
layout=qVBoxLayout(
children=[
qLabel(
text="a label"
)
]
)
)
)
Indents lend themselves well to visualizing widget hierarchy. Python's keyword arguments (and many IDEs' support for type hinting) help the user find relevant properties. If you've ever used a declarative-UI framework, you know the benefits it brings to productivity and readable code.
See the ClickableButton example
for a more involved look at how decpys can be used.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file decpys-0.1.0.tar.gz.
File metadata
- Download URL: decpys-0.1.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5786a570f05253d57c91e524a61e6f1c6c2cf2d034a3b1e6d64de837f7705e32
|
|
| MD5 |
8cf78d58fb47aaefecba21d9c32154d9
|
|
| BLAKE2b-256 |
1c34268e4e72b176ab0f98441b2bf5df51e01cd06e4f8b9917351d2a86c59b0b
|
File details
Details for the file decpys-0.1.0-py3-none-any.whl.
File metadata
- Download URL: decpys-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a2a22fc66f2b72ce764e01d2d473f471290008a8bf149f95c032dc359e34376
|
|
| MD5 |
a4c15b4bbbf12cc9edbb61cb08485e9e
|
|
| BLAKE2b-256 |
e96acda561de4d37368f069cd0a649a819e753726eb0648b8ccc06b21fa79b86
|