当前位置: 首页 > news >正文

建设中网站如何上传图片深圳观澜网站建设

建设中网站如何上传图片,深圳观澜网站建设,如何做网站个人,网页微信版官网登录不了桌面应用程序是原生的、快速的、安全的#xff0c;并提供Web应用程序无法比拟的体验。 Rust 是一种低级静态类型多范式编程语言#xff0c;专注于安全性和性能#xff0c;解决了 C/C 长期以来一直在努力解决的问题#xff0c;例如内存错误和构建并发程序。 在桌面应用程序开… 桌面应用程序是原生的、快速的、安全的并提供Web应用程序无法比拟的体验。 Rust 是一种低级静态类型多范式编程语言专注于安全性和性能解决了 C/C 长期以来一直在努力解决的问题例如内存错误和构建并发程序。 在桌面应用程序开发中使用的所有编程语言中Rust逐渐成为受欢迎的语言之一。Rust被广泛认为是可靠的、高性能的、多产的和通用的。事实上许多组织正在将其应用程序迁移到Rust。GNOME Linux开发环境就是一个例子。 1、Rust Qt框架选择 Rust有几个Qt绑定。最受欢迎的是RitualCXX-Qt和qmetaobject。Ritual不再维护qmetaobject不支持QWidgets。所以CXX-Qt是我们目前最好的选择 Rust是一门相对较新的语言。生态系统也是如此。CXX-Qt不如PyQt成熟。但它在去那里的路上。目前最新的版本已经有了一个好的和简单的API。 2、搭建rust和qt 开始使用Rust和Qt 使用以下命令安装Rust curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh 如果您https://rustup.rs/要确保一切正常请在终端中运行以下命令 rustc --version 接下来安装Qt # Ubuntu sudo apt install qt6-base-dev qt6-declarative-dev# Fedora sudo dnf install qt6-qtbase-devel qt6-qtdeclarative-devel# If you are unsure. Just install all Qt dependencies # It is no more than 200 MB sudo apt install qt6* sudo dnf install qt6* 要检查Qt是否成功安装请检查您是否能够运行以下命令 qmake --version 应用组件 CXX-Qt是Rust Qt绑定。它为Qt代码和Rust之间的桥接提供了一种安全的机制。与典型的一对一绑定不同。CXX-Qt使用CXX来桥接Qt和Rust。这提供了更强大的代码安全的API以及两个代码之间的安全多线程。与之前的版本不同。在最新版本中您不需要接触任何C代码。 QML是一种开发用户界面的编程语言。它非常易读因为它提供了类似JSON的语法。QML还支持命令式JavaScript表达式和动态属性绑定;这将有助于编写凯撒密码应用程序。如果您需要复习请参阅此QML介绍。 Qt应用演示 为了演示如何使用Qt和Rust我们将构建一个简单的“Hello World”应用程序。 创建Rust项目 首先我们需要创建一个Rust项目如下所示 ❯ cargo new --bin demoCreated binary (application) demo package 接下来打开Cargo.toml文件并添加依赖项 [dependencies] cxx 1.0.83 cxx-qt 0.5 cxx-qt-lib 0.5[build-dependencies] cxx-qt-build 0.5 现在让我们为应用程序创建入口点。在src/main.rs文件中我们将初始化GUI应用程序和QML引擎。然后我们将加载QML文件并告诉应用程序启动 use cxx_qt_lib::{QGuiApplication, QQmlApplicationEngine, QUrl};fn main() {// Create the application and enginelet mut app QGuiApplication::new();let mut engine QQmlApplicationEngine::new();// Load the QML path into the engineif let Some(engine) engine.as_mut() {engine.load(QUrl::from(qrc:/main.qml));}// Start the appif let Some(app) app.as_mut() {app.exec();} } 为了在Rust和Qt之间建立通信我们将在src/cxxqt_oject.rs文件中定义对象 // src/cxxqt_object.rs#[cxx_qt::bridge] mod my_object {#[cxx_qt::qobject(qml_uri demo, qml_version 1.0)]#[derive(Default)]pub struct Hello {}impl qobject::Hello {#[qinvokable]pub fn say_hello(self) {println!(Hello world!)}} } 属性宏用于启用CXX-Qt功能。 #[cxx_qt::bridge]标记Rust模块能够与C交互#[cxx_qt::qobject]将Rust结构体作为QObject子类公开给Qt#[qinvokable]将QObject上的函数作为Q_INVOKABLE暴露给QML和C。 接下来我们将创建一个名为struct的Hello它派生自qobject traits。然后我们可以实现常规的Rust函数来打印问候语 // src/main.rs mod cxxqt_object;use cxx_qt_lib::{QGuiApplication, QQmlApplicationEngine, QUrl}; 设计UI 我们将使用QML来设计用户界面。UI文件位于qml/main.qml文件中 Hello {id: hello}Column {anchors.horizontalCenter: parent.horizontalCenteranchors.verticalCenter: parent.verticalCenter/* space between widget */spacing: 10Button {text: Say Hello!onClicked: hello.sayHello()}} } 如果你仔细观察sayHello函数你会注意到CXX-Qt将Rust函数的snake case转换为camelCase C约定。现在我们的QML代码看起来并不奇怪 接下来我们必须使用Qt资源文件告诉Qt QML的位置。它应该位于qml/qml.qrc文件中 !DOCTYPE RCC RCC version1.0qresource prefix/filemain.qml/file/qresource /RCC 构建应用程序 最后一步是构建应用程序。为了教Rust如何构建cxxqt_object.rs和QML文件我们需要首先在build.rs文件中定义它 fn main() {CxxQtBuilder::new()// Link Qts Network library// - Qt Core is always linked// - Qt Gui is linked by enabling the qt_gui Cargo feature (default).// - Qt Qml is linked by enabling the qt_qml Cargo feature (default).// - Qt Qml requires linking Qt Network on macOS.qt_module(Network)// Generate C from the #[cxx_qt::bridge] module.file(src/cxxqt_object.rs)// Generate C code from the .qrc file with the rcc tool// https://doc.qt.io/qt-6/resources.html.qrc(qml/qml.qrc).setup_linker().build(); } 最终的结构应该是这样的 现在让我们使用cargo check来确保我们有一个正确的代码。 # cargo c is an alias to cargo check ❯ cargo cFinished dev [unoptimized debuginfo] target(s) in 0.04s 最后让我们运行应用程序 ⬢ ❯ cargo --quiet rCompiling demo v0.1.0Finished dev [unoptimized debuginfo] target(s) in 0.49sRunning target/debug/demo Hello world! Rust和qt的结合会带来新的碰撞和可能。
http://www.pierceye.com/news/584812/

相关文章:

  • 深圳学校网站建设wordpress rossi 汉化
  • 课程网站课程资源建设北京吴勇设计工作室
  • 网站建设费用什么意思软件制作专业
  • 扬中本地网站外国做美食视频网站
  • 深圳手机网站制作价钱阜阳中国建设银行官网站
  • 廊坊建设网站企业安卓开发自学教程
  • 做网站虚拟主机配置汉沽手机网站建设
  • 设计一个网站先做哪些构造姑苏区建设局网站
  • 制造业营销外贸网站建设网站管理的内容包括
  • 看电视剧的免费网站app下载网站等保如何做
  • 如何做网站的营销中山vi设计公司
  • 搜索引擎网站使用的排名规则室内设计联盟网页版
  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做
  • 上海建设银行网站转账记录吗外国网站做问卷调查挣钱
  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站
  • 淄川响应式网站建设网站在国内服务器在国外
  • 施工企业市场经营工作思路及措施个人如何优化网站有哪些方法
  • 怎么做一个盈利网站义乌创博网络科技有限公司
  • 学校网站建设代码不重名的建筑公司名字
  • 网站开发模块的需求海外销售平台有哪些
  • 前端和后端的区别工资郑州网站优化怎样做
  • 小程序模板平台有哪些网站优化包括哪些内容
  • 免费建网站的好的移动端网站模板下载
  • 青岛网站优化排名视频源网站怎么做
  • 做网站找我二级学院网站建设方案
  • 知名网站建设公司 北京近期网络营销的热点事件