#qt #generated-bindings #api-bindings #qt-gui #qt-core

sys qttypes

Manually maintained buildings for Qt value types

12 releases

0.2.11 Nov 3, 2023
0.2.9 Jun 17, 2023
0.2.8 Feb 25, 2022
0.2.6 Nov 19, 2021
0.2.2 Jun 28, 2021

#4 in #qt

Download history 2367/week @ 2023-12-17 1928/week @ 2023-12-24 1889/week @ 2023-12-31 4038/week @ 2024-01-07 4136/week @ 2024-01-14 3262/week @ 2024-01-21 3351/week @ 2024-01-28 3433/week @ 2024-02-04 3127/week @ 2024-02-11 3262/week @ 2024-02-18 3338/week @ 2024-02-25 3307/week @ 2024-03-03 3853/week @ 2024-03-10 3798/week @ 2024-03-17 3958/week @ 2024-03-24 3447/week @ 2024-03-31

15,436 downloads per month
Used in 219 crates (7 directly)

MIT license

150KB
3.5K SLoC

qttypes

This crate contains manually generated bindings to Qt basic value types. It is meant to be used by other crates, such as the qmetaobject crate which re-expose them

The Qt types are basically exposed using the cpp crate. They have manually writen rust idiomatic API which expose the C++ API. These types are the direct equivalent of the Qt types and are exposed on the stack.

In addition, the build script of this crate expose some metadata to downstream crate that also want to use Qt's C++ API:

  • DEP_QT_VERSION: The Qt version as given by qmake
  • DEP_QT_INCLUDE_PATH: The include directory to give to the cpp_build crate to locate the Qt headers
  • DEP_QT_LIBRARY_PATH: The path containing the Qt libraries.

See the crate documentation for more info.

Philosophy

The goal of this crate is to expose a idiomatic Qt API for the core value type classes. The API is manually generated to expose required feature in the most rust-like API, while still keeping the similarities with the Qt API itself.

It is not meant to expose all of the Qt API exhaustively, but only the part which is relevant for the usage in other crate. If you see a feature missing, feel free to write a issue or a pull request.

Note that this crate concentrate on the value types, not the widgets or the the QObject. For that, there is the qmetaobject crate.

Dependencies

~1–2.4MB
~43K SLoC