CXX-Qt 是一组 Rust 包,用于创建与 Qt 的双向 Rust ⇄ C++ 绑定。它可用于使用 CMake 将 Rust 集成到 C++ 应用程序中,或使用 Cargo 构建 Rust 应用程序。 CXX-Qt 提供了用于在 Rust 中实现 QObject 子类的工具,可在 C++、QML 和 JavaScript 中使用。
CXX-Qt 自动生成代码以在 Rust 和 Qt/C++ 域之间传输数据,并使用名为CXX的库在两者之间进行通信。 CXX-Qt 桥接方法的主要原则 为了解释有效的 Rust-Qt 桥是如何工作的,我们将描述 CXX-Qt 库背后的几个关键原则。 在Rust 中声明 QObject Qt 的设计本质上是面向对象的,对于 C++ 和 QML 都是如此,而 Rust ...
link: https://github.com/konradsz/igrep Rust进行QT开发的新方式 CXX-Qt 我们梦想着用Rust进行QT开发。 之前Rust的Qt绑定,一直没有吸引太多人注意,本身确实也不好用。 而CXX-QT的方式不一样, 这个库目前还未到产品级阶段,但是已经可用了。大家有机会可以尝试尝试。 blog: https://www.kdab.com/cxx-qt/ ...
近日他们推出了 CXX-Qt ,称该工具可为 Qt 提供安全的 Rust 语言绑定。Rust 拥有 C/C++ 欠缺的内存安全性,且拥有丰富的库生态系统,可用于(反)序列化、异步、解析不安全输入、线程等,将这些 Rust 库集成到 Qt 应用程序中将为 Qt 带来大量安全优化。 专注于 KDE/Qt 的科技公司 KDAB 一直在努力改进 Rust 与 ...
CXX-Qtis not production-ready or stable and is still a work-in-progress. We welcome any feedback on the direction of the project and features and/or any suggestions you may have. Currently, the existing code is able to perform the following tasks: ...
属性宏用于启用CXX-Qt功能。 #[cxx_qt::bridge]:标记Rust模块能够与C++交互#[cxx_qt::qobject]:将Rust结构体作为QObject子类公开给Qt#[qinvokable]:将QObject上的函数作为Q_INVOKABLE暴露给QML和C++。 接下来,我们将创建一个名为struct的Hello,它派生自qobjecttraits。然后我们可以实现常规的Rust函数来打印问候语...
CXX-Qt 在代码生成期间将此 Rust 模块扩展为QObject的 C++ 子类和RustObj结构,如图 2 所示。 图2. CXX-Qt 如何扩展 QObjects 以供运行时使用() 下面是一个 QObject 示例,其中包含三个用于跨域操作的可调用方法和一个 Rust-only 方法: #[cxx_qt::bridge] ...
许多工作已经完成。软件咨询公司KDAB创建了一组 Rust crate,称为cxx-qt is,这将有助于通过Qt跨平台开发框架使用 C++ 的CMake构建系统将 Rust 集成到 C++ 应用程序中。Google 本身已经投资了Android 操作系统和 iChromium的互操作工具,包括autocxx、 bindgen、 cbindgen、 Diplomat和 crubit,为了进一步推动...
qmetaobject-rs 它是一个qml+rust代码写qt项目的一个rust库。对于qml来说,支持js交互,同时它是一个rust qt框架,使每个人都可以用Rust创建Qt/QML应用程序。使用这个crate的开发人员,不需要输入任何c++代码,也不需要使用cargo之外的其他构建系统。 综合对比 - 推荐使用cxx-qt这个库,需要懂一些c/c++基础,比如说hea...
Meta 内部也针对 Rust 建立了专门的新手训练营,用于培养 Rust 工程师。Meta 对 Rust 生态的重要贡献之一是 cxx ,用于 Rust 和 Cpp 之间的安全交互。在 2022 年 7 月,Meta 首次宣布 Rust 成为 Meta 支持服务器端使用的编程语言。 Microsoft 拥有世界上最大的 C/C++ 代码库之一。从 Windows 和 Office 到 ...