rust + gnome.gtk 实现的【图形用户界面】版 [npm

-
工程入口:#-
这是一款加持了【图形用户界面】的npm - (名曰:问卷) 。即,根据【问卷】配置文件,以人-机交互的形式,收集终端用户的【回答结果】 。这里提到的【问卷配置】与【回答结果】都是*.json格式的字符串(或文件) 。
【问卷】既能够作为.exe文件被双击运行,也支持作为.dll文件被链接和调用-间接运行 。
在函数调用期间,会有gnome图形界面被弹出和提示用户输入问题答案 。
制作这款工具的动机
我最近花了两个月的业余时间制作【问卷】这款工具的直接冲动来源于:将公司【前端-脚手架安装向导】从·命令行交互·升级为·图形界面互动·的构想 。其路线图大约包括:
后来,我越做这款工具,越是觉得它的·通用性·还是比较高的 。其使用场景不应仅只局限于【脚手架-安装过程】的现场配置收集 。相反,任何含有【意见咨询】类功能的使用场景都可以考虑使用这款(或这类)工具 。而,工具链的后续处理环节,再根据被收集的反馈结果,做定制化的“裁剪” 。比如,“裁剪”脚手架内置的工程原型,使其更符合项目要求 。
于是,我将这款工具从“脚手架-安装向导”更名为“问卷” 。同时,它“下一步”再“下一步”的使用风格真心地相像于传统的应用软件的【安装向导】 。【情怀】--- 在我认知体系中的任何软件安装都应该是“下一步”再“下一步”...最后“完成”;并且,其步骤越多,越有仪式感 。
另一方面,在【rust桌面应用】方向投入更多业余精力也符合我个人对掌握rust技术栈的成长规划 。即,
最后我的愿景是:在IoT嵌入式设备上“开花结果” 。这对rust技术栈本身来说真不是问题 。它已经一次又一次地证明其实力 。愿景的实现主要还是看我对rust的掌握能够达到什么水平 。
综上所述,实践rust的务实路径:wasm-> GUI App->IoT嵌入式编程 。使用rust做一些GC类语言想做,而做不好的事 。
即便作为是一名懒惰的程序员,我也得掌握两个计算机语言
前者中佼佼者?在:“铺得面广+无处不在”,解决“温饱”问题;后者中“剩者”的立足点是:“足够地快+内存安全”,解决“小康”问题 。我要是能达到这个目标,那可真是:“中年危机远离我” 。
技术
简单地讲,rust写业务逻辑 +gtk组件库画界面 。
依赖说明
eval
log与
quick-xml
gdk-,gio,glib,gtk
毕竟,【问卷】功能单一,所以用到的第三方依赖项不多 。此外,
开发环境搭建
不熟悉rust + gtk + win32技术栈的小伙伴儿请移步我的另一篇技术分享:为 Rust 原生 gui 编程,搭建 win32 开发环境 。
工具链版本
鉴于之前使用rust + wasm完成【网络加密通讯】功能的踩坑经验,我这次显示地将绑定了适用的版本-2021-03-25--pc--gnu 。若你的本地安装版本与之不匹配,请根据编译的报错信息,***正确的 版本 。就开发环境而言,对非用户不友好了,实在对不住 。
工程打开方式
请从 ->【文件】->【打开工作区】->选择文件.\main.code- 。然后,在【工作区】下有三个子工程
.├─ rust-gui# 这是`rust + gnome.gtk3`的原生图形界面开发子工程├─ npmjs发布包# 对应了 npm 包 https://www.npmjs.com/package/scaffold-wizard└─ 简单功能演示# node-ffi 封装的简单演示用例

rust + gnome.gtk 实现的【图形用户界面】版 [npm

文章插图
构建 cargo build或cargo build --
输出两个关键结果
-是cargo new --bin与cargo new --lib的混合体 。
cargo test