From a3e02d39ec3f9bb7d71bc5c232a7247c66c20b4d Mon Sep 17 00:00:00 2001 From: "Friedrich W. H. Kossebau" Date: Sun, 17 Dec 2017 12:45:20 +0100 Subject: [PATCH] Turn Jos' blog posts into a mdbook-based tutorial Summary: How to create the tutorial: $ cargo install mdbook $ cd tutorial $ mdbook build Then open build/tutorial/index.html in a web browser. See also http://rust-lang-nursery.github.io/mdBook/ Reviewers: vandenoever Reviewed By: vandenoever Differential Revision: https://phabricator.kde.org/D9368 --- .gitignore | 3 + tutorial/SUMMARY.md | 5 + tutorial/book.toml | 8 + tutorial/demo.png | Bin 0 -> 37270 bytes tutorial/demo2.png | Bin 0 -> 66955 bytes tutorial/demo3.png | Bin 0 -> 35390 bytes tutorial/happy_time.png | Bin 0 -> 23960 bytes tutorial/rust_qt_binding_generator.md | 177 +++++++++++ tutorial/rust_qt_binding_generator.svg | 34 ++ tutorial/time.png | Bin 0 -> 26816 bytes tutorial/time_for_rust_and_qml.md | 415 +++++++++++++++++++++++++ 11 files changed, 642 insertions(+) create mode 100644 tutorial/SUMMARY.md create mode 100644 tutorial/book.toml create mode 100644 tutorial/demo.png create mode 100644 tutorial/demo2.png create mode 100644 tutorial/demo3.png create mode 100644 tutorial/happy_time.png create mode 100644 tutorial/rust_qt_binding_generator.md create mode 100644 tutorial/rust_qt_binding_generator.svg create mode 100644 tutorial/time.png create mode 100644 tutorial/time_for_rust_and_qml.md diff --git a/.gitignore b/.gitignore index 076d83b..66e6f98 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ /docker_home/ /tests/rust_*/Cargo.lock /tests/rust_*/target/ + +# tutorial build +/build/tutorial/ \ No newline at end of file diff --git a/tutorial/SUMMARY.md b/tutorial/SUMMARY.md new file mode 100644 index 0000000..193e3bf --- /dev/null +++ b/tutorial/SUMMARY.md @@ -0,0 +1,5 @@ +# Summary + +[Rust Qt Binding Generator](./rust_qt_binding_generator.md) + +- [Rust and QML: a timely example](./time_for_rust_and_qml.md) diff --git a/tutorial/book.toml b/tutorial/book.toml new file mode 100644 index 0000000..aa496e7 --- /dev/null +++ b/tutorial/book.toml @@ -0,0 +1,8 @@ +[book] +title = "The official Rust Qt Binding Generator Guide" +author = "Jos van den Oever" +description = "Giving Rust a cute wrapping!" +src = "." + +[build] +build-dir = "../build/tutorial" diff --git a/tutorial/demo.png b/tutorial/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c9bddac6458e68936f0dc6347caa1369f46524 GIT binary patch literal 37270 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 z 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 F{{oAw!IS_1 literal 0 HcmV?d00001 diff --git a/tutorial/demo2.png b/tutorial/demo2.png new file mode 100644 index 0000000000000000000000000000000000000000..64ae8e40f3aa75fc293124aedd07fbef683fdad6 GIT binary patch literal 66955 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

OJf9Yyx$ddHVU;h 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 ~!fPQm9pbZ?B}@;?ggF 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%0AueS9+n~X1lk82dZCk6|L*d3 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 literal 0 HcmV?d00001 diff --git a/tutorial/demo3.png b/tutorial/demo3.png new file mode 100644 index 0000000000000000000000000000000000000000..30904e2471b5f122d494a895908e23717018e52a GIT binary patch literal 35390 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

3SgLdn`T2t~F~_|EA2uIuZM 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 literal 0 HcmV?d00001 diff --git a/tutorial/rust_qt_binding_generator.md b/tutorial/rust_qt_binding_generator.md new file mode 100644 index 0000000..a24613c --- /dev/null +++ b/tutorial/rust_qt_binding_generator.md @@ -0,0 +1,177 @@ +# Rust Qt Binding Generator + +![Rust Qt Binding Generator (Logo by Alessandro Longo)](rust_qt_binding_generator.svg) + +This code generator gets you started quickly to use Rust code from Qt and QML. In other words, it helps to create a Qt based GUI on top of Rust code. + +Qt is a mature cross-platform graphical user interface library. Rust is a new programming language with strong compile time checks and a modern syntax. + +## Getting started + +There are two template projects that help you to get started quickly. One for [Qt Widgets](https://commits.kde.org/rust-qt-binding-generator?path=templates/qt_widgets) and one for [Qt Quick](https://commits.kde.org/rust-qt-binding-generator?path=templates/qt_quick). Just copy these folders as new project and start coding. + +Here is a small schematic of how files made by the generator are related: + + + + + + + + + + + + + + + + + + + + +
Qt Widgets (main.cpp) / Qt Quick (main.qml)⟵ UI code, written by hand
src/Binding.h⟵ generated from
binding.json
src/Binding.cpp
rust/src/interface.rs
rust/src/implementation.rs⟵ Rust code, written by hand
+ +To combine Qt and Rust, write an interface in a JSON file. From that, the generator creates Qt code and Rust code. The Qt code can be used directly. The Rust code has two files: interface and implementation. The interface can be used directly. + +```json +{ + "cppFile": "src/Binding.cpp", + "rust": { + "dir": "rust", + "interfaceModule": "interface", + "implementationModule": "implementation" + }, + "objects": { + "Greeting": { + "type": "Object", + "properties": { + "message": { + "type": "QString", + "write": true + } + } + } + } +} +``` + +This file describes an binding with one object, `Greeting`. `Greeting` has one property: `message`. It is a writable property. + +The Rust Qt Binding Generator will create binding source code from this description: + +``` +$ rust_qt_binding_generator binding.json +``` + +This will create four files: + +* *src/Binding.h* +* *src/Binding.cpp* +* *rust/src/interface.rs* +* rust/src/implementation.rs + +Only `implementation.rs` should be changed. The other files are the binding. `implementation.rs` is initialy created with a simple implementation that is shown here with some comments. + +```rust +// rust/src/implementation.rs + +use interface::*; + +/// A Greeting +pub struct Greeting { + /// Emit signals to the Qt code. + emit: GreetingEmitter, + /// The message of the greeting. + message: String, +} + +/// Implementation of the binding +/// GreetingTrait is defined in interface.rs +impl GreetingTrait for Greeting { + /// Create a new greeting with default data. + fn new(emit: GreetingEmitter) -> Greeting { + Greeting { + emit: emit, + message: "Hello World!".into(), + } + } + /// The emitter can emit signals to the Qt code. + fn emit(&self) -> &GreetingEmitter { + &self.emit + } + /// Get the message of the Greeting + fn message(&self) -> &str { + &self.message + } + /// Set the message of the Greeting + fn set_message(&mut self, value: String) { + self.message = value; + self.emit.message_changed(); + } +} +``` + +The building block of Qt and QML projects are QObject and the Model View classes. `rust_qt_binding_generator` reads a JSON file to generate QObject or QAbstractItemModel classes that call into generated Rust files. For each type from the JSON file, a Rust trait is generated that should be implemented. + +This way, Rust code can be called from Qt and QML projects. + +### Qt Widgets with Rust + +This C++ code uses the Rust code written above. + +```cpp +#include "Binding.h" +#include +int main() { + Greeting greeting; + qDebug() << greeting.message(); + return 0; +} +``` + +### Qt Quick with Rust + +This Qt Quick (QML) code uses the Rust code written above. + +```qml +Rectangle { + Greeting { + id: rust + } + Text { + text: rust.message + } +} +``` + +## Demo application + +The project comes with a demo application that show a Qt user interface based on Rust. It uses all of the features of Object, List and Tree. Reading the demo code is a good way to get started. + +

+ Qt Widgets UI with Rust logic +
Qt Widgets UI with Rust logic
+
+ +
+ Qt Quick Controls UI with Rust logic +
Qt Quick Controls UI with Rust logic
+
+ +
+ Qt Quick Controls 2 UI with Rust logic +
Qt Quick Controls 2 UI with Rust logic
+
+ +## Docker development environment + +To get started quickly, the project comes with a `Dockerfile`. You can start a docker session with the required dependencies with `./docker/docker-bash-session.sh`. + +## More information + +* [Rust Qt Binding Generator](https://cgit.kde.org/rust-qt-binding-generator.git/about) +* [Qt](http://doc.qt.io/) +* [Qt Examples and tutorials](http://doc.qt.io/qt-5/qtexamplesandtutorials.html) +* [The QML Book](https://qmlbook.github.io/) diff --git a/tutorial/rust_qt_binding_generator.svg b/tutorial/rust_qt_binding_generator.svg new file mode 100644 index 0000000..afb87c8 --- /dev/null +++ b/tutorial/rust_qt_binding_generator.svg @@ -0,0 +1,34 @@ + + + + + + image/svg+xml + + Rust Qt Binding Generator + + + + + + + + + diff --git a/tutorial/time.png b/tutorial/time.png new file mode 100644 index 0000000000000000000000000000000000000000..ff01e1fdcd2514e9294bfd90c718c007bc9ca08a GIT binary patch literal 26816 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 + Time for Rust and QML +
Time for Rust and QML
+ + +`qmlscene` can run any plain QML files. If you have QML plugins installed, these can be used too. You can make plugins that are implemented in Rust, but we'll not go into that now. + + +## Set up a QML project with Rust + +Before we can replace the `QtObject`, we have to set up a project. Rust Qt Binding Generator comes with a template project for QML in the folder [`templates/qt_quick`](https://commits.kde.org/rust-qt-binding-generator?path=templates/qt_quick). + +You can get set up like so. You will need to have Qt, Rust and CMake installed. + +First build `rust_qt_binding_generator`. + +``` +$ git clone git://anongit.kde.org/rust-qt-binding-generator +$ mkdir build +$ cd rust-qt-binding-generator/build +$ cmake .. +$ make rust_qt_binding_generator +$ export PATH=$PATH:$PWD/src +``` + +Now build and run the template project. + +``` +$ mkdir ../templates/qt_quick/build +$ cd ../templates/qt_quick/build +$ cmake .. +$ make +$ ./MyExe +``` + +You will be greeted with a 'Hello World' application. + + +## Starting from a template + +So what just happened? The template project is based on CMake. CMake is the build system that most KDE projects use. A template in CMake is an example of how to add Rust code to KDE programs. It is possible to use another build system. + +CMake performs four steps as instructed by the `CMakeLists.txt` file. It + +1) generates Rust and C++ from `bindings.json` by calling `rust_qt_binding_generator`, +2) compiles the Rust code in `rust/` into a static library by calling `cargo`, +3) compiles the C++ code, +4) links the C++ objects, the QML files, and the Rust library into an executable. + +If you prefer to use only `cargo`, you'll have to tell it to perform steps 1, 3 and 4 in a `build.js` file. + + +## Adding some Rust + +Now let's turn this clock into the [Antikythera mechanism](https://en.wikipedia.org/wiki/Antikythera_mechanism) by adding some Rust. + +We want the Rust code to have a Time object that indicates the hour, the minute and the second. We write this interface into `bindings.json`. + +```json +{ + "cppFile": "src/Bindings.cpp", + "rust": { + "dir": "rust", + "interfaceModule": "interface", + "implementationModule": "implementation" + }, + "objects": { + "Time": { + "type": "Object", + "properties": { + "hour": { + "type": "quint32" + }, + "minute": { + "type": "quint32" + }, + "second": { + "type": "quint32" + } + } + } + } +} +``` + +Now if we run `make` again, three files will be updated: `src/Bindings.h`, `src/Bindings.cpp`, and `rust/src/interface.rs`. And then we'll get a compile error from `cargo`. + +That is because we have to adapt `rust/src/implementation.rs` to the new `interface.rs`. `interface.rs` specifies a trait that must be implemented in `implementation.rs`. + +This is the generated trait: + +```rust +// rust/src/interface.rs + +pub trait TimeTrait { + fn new(emit: TimeEmitter) -> Self; + fn emit(&self) -> &TimeEmitter; + fn hour(&self) -> u32; + fn minute(&self) -> u32; + fn second(&self) -> u32; +} +``` + +Note that the trait has getters, but no setters. With `"write": true`, you can add setters on properties. + +For now, we implement a fixed time in our new `implementation.rs`. + +```rust +// rust/src/implementation.rs + +use interface::*; + +pub struct Time { + emit: TimeEmitter +} + +impl TimeTrait for Time { + fn new(emit: TimeEmitter) -> Self { + Time { + emit + } + } + fn emit(&self) -> &TimeEmitter { + &self.emit + } + fn hour(&self) -> u32 { + 1 + } + fn minute(&self) -> u32 { + 52 + } + fn second(&self) -> u32 { + 0 + } +} +``` + +Now whenever the QML application wants to know the time, it can ask the Rust code. Well, almost. We have to change three more files and one of them is a C++ file. It is a very simple change and it is needed to tell the QML code about the Rust QObject. In `src/main.cpp`, change this line: + +```c++ + // src/main.cpp + + qmlRegisterType("RustCode", 1, 0, "Simple"); +``` + +to this + +```c++ + // src/main.cpp + + qmlRegisterType