White-Oak / Qml Rust
Licence: mit
QML (Qt Quick) bindings for Rust language
Stars: ✭ 196
Programming Languages
rust
11053 projects
Projects that are alternatives of or similar to Qml Rust
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (+1.53%)
Mutual labels: gui, qt, qml
Qml Coding Guide
A collection of good practices when writing QML code
Stars: ✭ 196 (+0%)
Mutual labels: qt, qml
Dotherside
C language library for creating bindings for the Qt QML language
Stars: ✭ 140 (-28.57%)
Mutual labels: qt, qml
Zshelf
reMarkable app: Browse and download books from Z-Library
Stars: ✭ 166 (-15.31%)
Mutual labels: qt, qml
Flameshot
Powerful yet simple to use screenshot software 🖥️ 📸
Stars: ✭ 15,429 (+7771.94%)
Mutual labels: gui, qt
Lablqml
Interfacing Qt/QML with OCaml. Formely known as lablqt
Stars: ✭ 136 (-30.61%)
Mutual labels: gui, qt
Haruna
Open source video player built with Qt/QML and libmpv.
Stars: ✭ 147 (-25%)
Mutual labels: qt, qml
React Nodegui Starter
Starter repository for react based native desktop apps using react-nodegui
Stars: ✭ 132 (-32.65%)
Mutual labels: gui, qt
Porymap
Map editor for pokeemerald, pokefirered, and pokeruby
Stars: ✭ 164 (-16.33%)
Mutual labels: gui, qt
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-42.35%)
Mutual labels: qt, qml
Atomicdex Desktop
atomicDEX Desktop app - project codename "Dextop"
Stars: ✭ 126 (-35.71%)
Mutual labels: qt, qml
Qui
【此项目作者为刘典武,不是我自己的原创项目,望周知。也请大家不要骚扰刘典武。】一个用Qt开发的用来生成QSS文件的小程序,附简单Demo,主程序本身也可以看作一个很好的Demo。
Stars: ✭ 168 (-14.29%)
Mutual labels: gui, qt
Qt Quick
QML-rust - bindings forBindings are based on DOtherSide C bindings for QML Library is mostly feature-compliant with other bindings based on the library, but lacks some minor features and has quite a few bugs.
documentation
Examples
All examples are located in a folder examples/
, under example_name.rs
and example_name.qml
names.
-
cargo run --example properties
for setting properties from Rust to QML. -
cargo run --example listmodel
for an example of providing QML with list model from Rust. -
cargo run --example listmodel_macro
for the same example, but usingQ_LISTMODEL!
andQ_LISTMODEL_ITEM!
macro. -
cargo run --example sigslots
for an example of how to create your ownQObject
with signals and slots, and to communicate between QML and Rust. Also shows how to useQ_OBJECT!
macro. -
cargo run --example qobjects
for an example of how to useQ_OBJECT!
macro with different types. -
cargo run --example qvarlists
for an example of how to useqvarlist!
macro to easily formQVariant
(used to pass data to QML) of a complex array. -
cargo run --example threaded
for an example of multithreading. -
cargo run --example qmlregister
for an example of how to register and use your own types from Rust in QML. - An example in
examples/resources
(should be run manually bycargo run
) shows how to use qrc resources.
Requires CMake, Make, Qt (Core, Gui, Widgets, Quick), pkg-config (only for OS X and GNU/Linux) and, of course, Rust.
To run tests: RUST_TEST_THREADS=1 cargo test
In-app examples
- Architect - an app showing some git stats, using qml-rust to provide properties and lists to QML in here.
- Kefia - A simple package manager, that provides a QListModel to QML, registers a QObject with slots and communicates between QML and Rust, here.
Status
Done:
- Basic initialization and execution.
- Providing properties to QML files.
- QAbstractListModels - provides changable models for QML items (early draft, still lacks proper mutability).
- QObjects: slots, signals (limited properties support). Emitting signals and receiving slots works.
- Registering your own QML types (singletons or not) from Rust code.
To be done:
- the library is mostly done, but some stuff is lacking polish, like possible memory leaks or better macro designs.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].