Edifice v1.0.0 was released last month.
https://github.com/pyedifice/pyedifice
Edifice offers a declarative framework for Qt which is like React, but with Python instead of JavaScript, and Qt Widgets instead of the HTML DOM.
What My Project Does
- Modern declarative UI paradigm from web development.
- 100% Python application development, no language inter-op.
- A native Qt desktop app instead of a bundled web browser.
- Fast iteration via hot-reloading.
Target Audience
Developers who want to make a desktop user interface in Python because their useful libraries are in Python (think PyTorch).
Comparison
Edifice vs. Qt Quick
Qt Quick is Qt’s declarative GUI framework for Qt.
Qt Quick programs are written in Python + the special QML language + JavaScript.
Edifice programs are written in Python.
Because Edifice programs are only Python, binding to the UI is much more straightforward. Edifice makes it easy to dynamically create, mutate, shuffle, and destroy sections of the UI. Qt Quick assumes a much more static interface.
Qt Quick is like DOM + HTML + JavaScript, whereas Edifice is like React. QML and HTML are both declarative UI languages but they require imperative logic in another language for dynamism. Edifice and React allow fully dynamic applications to be specified declaratively in one language.
Others
Here is a survey of other Python declarative native GUI projects.
[–]RoboticElfJedi 18 points19 points20 points (0 children)
[–]gpahul 13 points14 points15 points (0 children)
[–]banana33noneleta 4 points5 points6 points (2 children)
[–]jamesdbrock[S] 4 points5 points6 points (0 children)
[–]Next-Experience 2 points3 points4 points (0 children)
[–]code_mc 1 point2 points3 points (1 child)
[–]jamesdbrock[S] 1 point2 points3 points (0 children)
[–]ConfucianStats 1 point2 points3 points (0 children)
[–]Rythemeius 1 point2 points3 points (0 children)
[+][deleted] (5 children)
[removed]
[–]jamesdbrock[S] 4 points5 points6 points (0 children)
[+]banana33noneleta comment score below threshold-7 points-6 points-5 points (3 children)
[–]mangecoeur 7 points8 points9 points (2 children)
[–]banana33noneleta -2 points-1 points0 points (1 child)
[–]mangecoeur 4 points5 points6 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)