Ayush
Posted on January 22, 2022
Background
For the last few months, I have been pushing Rust/QT development along. I am the author of ki18n crate and am currently in the middle of creating kconfig crate as a part of Season of KDE 2022.
In this post, I will walk you through creating a new Rust/QML project using cargo-generate templates. I made these templates to encourage more people to test out Qt development with Rust.
Install Cargo Generate
Full Instructions are present in the repository here.
Using Cargo
With System’s OpenSSL
cargo install cargo-generate
With vendored OpenSSL
cargo install cargo-generate --features vendored-openssl
Arch Linux
pacman -S cargo-generate
Manual
- Download the binary tarball for your platform from releases page.
- Unpack the tarball and place the binary
cargo-generate
in~/.cargo/bin/
Select the Template
Currently, there are two templates I have created for Rust/QML. The templates can be found here.
Basic QtQuick Application
This template creates a basic QtQuick Application with Rust. It does not contain any KDE Components. This template should work in all platforms QT, and Rust is supported.
Dependencies
Manual
QT can be installed using the installer. Be sure to install qmake
since it is used by qmetaobject crate to detect system QT install.
Ubuntu
sudo apt install build-essential qtbase5-dev qtdeclarative5-dev libqt5svg5-dev qtquickcontrols2-5-dev qml-module-qtquick-layouts
Generate Project
cargo generate --git https://invent.kde.org/oreki/rust-qt-template/ basic-qtquick --name myproject
Run Project
We will also set RUST_LOG
variable for enabling logs.
RUST_LOG=error,warn,info,debug,trace cargo run
Screenshots
Kirigami Application
This template creates a basic Kirigami Application with Rust. Currently, this template is only tested in Linux. It can technically work in other platforms if the KDE Frameworks path is manually specified, but I have not tried that. If you would like to help, the crate for detecting KDE Frameworks is kde_frameworks.
Dependencies
Manual
-
QT
can be installed using the installer. Be sure to installqmake
since it is used by qmetaobject crate to detect systemQT
install. - KDE Frameworks (
Kirigami
andKI18n
) should also be installed. Be sure to installkf5-config
since it is used to locateKirigami
andKI18n
Frameworks.
Ubuntu
sudo apt install build-essential qtbase5-dev qtdeclarative5-dev libqt5svg5-dev qtquickcontrols2-5-dev qml-module-qtquick-layouts qml-module-org-kde-kirigami2 kirigami2-dev libkf5i18n-dev gettext libkf5coreaddons-dev libkf5kdelibs4support5-bin
Arch-based
sudo pacman -Syu base-devel extra-cmake-modules cmake kirigami2 kde-sdk-meta gettext
Fedora
sudo dnf groupinstall "Development Tools" "Development Libraries"
sudo dnf install extra-cmake-modules cmake qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel kf5-kirigami2 kf5-kirigami2-devel kf5-ki18n-devel kf5-kcoreaddons-devel gettext
Generate Project
cargo generate --git https://invent.kde.org/oreki/rust-qt-template/ kirigami --name myproject
Run Project
We will also set RUST_LOG
variable for enabling logs.
RUST_LOG=error,warn,info,debug,trace cargo run
Screenshots
Conclusion
If you find this exciting or want to try something new in Rust/QT, here is a list of crates related to Rust + QT development.
Posted on January 22, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.