9 个版本
使用旧的 Rust 2015
0.0.9 | 2016 年 12 月 11 日 |
---|---|
0.0.8 | 2016 年 10 月 18 日 |
0.0.7 | 2016 年 9 月 25 日 |
0.0.6 | 2016 年 8 月 31 日 |
0.0.1 | 2016 年 6 月 30 日 |
#46 in #qt
用于 kefia
75KB
1.5K SLoC
QML-rust - Qt Quick 的绑定
绑定基于 DOtherSide 的 QML C 绑定。库的功能与基于该库的其他绑定基本兼容,但缺少一些小功能,并且存在一些错误。
文档
示例
所有示例都位于文件夹 examples/
中,在 example_name.rs
和 example_name.qml
命名。
cargo run --example properties
从 Rust 到 QML 设置属性。cargo run --example listmodel
提供从 Rust 到 QML 列表模型的示例。cargo run --example listmodel_macro
提供相同的示例,但使用Q_LISTMODEL!
和Q_LISTMODEL_ITEM!
宏。cargo run --example sigslots
提供如何创建自己的QObject
并使用信号和槽进行通信的示例,以及 QML 和 Rust 之间的通信。还展示了如何使用Q_OBJECT!
宏。cargo run --example qobjects
提供如何使用不同类型的Q_OBJECT!
宏的示例。cargo run --example qvarlists
以便了解如何使用qvarlist!
宏轻松地形成QVariant
(用于将数据传递到 QML)的复杂数组示例。cargo run --example threaded
以了解多线程示例。cargo run --example qmlregister
以了解如何在 QML 中注册和使用 Rust 中的自定义类型。examples/resources
中的示例(应通过cargo run
手动运行)展示了如何使用 qrc 资源。
需要 CMake、Make、Qt(Core、Gui、Widgets、Quick)以及当然,还有 Rust。
要运行测试: RUST_TEST_THREADS=1 cargo test
应用内示例
- Architect - 一个显示一些 git 统计信息的应用,使用 qml-rust 在 这里 为 QML 提供属性和列表。
- Kefia - 一个简单的软件包管理器,为 QML 提供一个 QListModel,注册一个 QObject 并带有槽,以及在 QML 和 Rust 之间进行通信,这里。
状态
完成
- 基本初始化和执行。
- 为 QML 文件提供属性。
- QAbstractListModels - 为 QML 项目提供可变模型(早期草案,尚缺乏适当的可变性)。
- QObjects:槽、信号(有限属性支持)。发出信号和接收槽正常工作。
- 从 Rust 代码注册自己的 QML 类型(单例或非单例)。
待完成
- 库大部分已完成,但某些功能缺乏打磨,例如可能的内存泄漏或更好的宏设计。
依赖项
~57KB