Masonry Rust GUI 框架开源项目

我要开发同款
匿名用户2023年02月06日
315阅读

技术信息

开源地址
https://github.com/PoignardAzur/masonry-rs
授权协议
Apache

作品详情

Masory是一个RustGUI框架。

Masory提供了用于创建窗口的平台(使用Glazier 作为后端),每个窗口都包含一个Widget树。它还提供了用于在rutime检测Widget树的工具,可编写单元测试,方便开发者调试和维护应用程序。

基于Masory,开发者可实现即时模式(immediate-mode)GUI、Elm架构、函数式响应GUI等。

示例代码

usemasory::widget::{Butto,CrossAxisAligmet,Flex,Label,Portal,SizedBox,TextBox,WidgetMut,};usemasory::{Actio,AppDelegate,AppLaucher,Color,DelegateCtx,Ev,WidgetId,WidowDescriptio,WidowId,};structDelegate{ext_task:Strig,}implAppDelegateforDelegate{fo_actio(&mutself,ctx:&mutDelegateCtx,actio:Actio,){matchactio{Actio::ButtoPressed|Actio::TextEtered(_)=>{letmutroot:WidgetMut<Portal<Flex>>=ctx.get_root();ifself.ext_task!=""{letmutflex=root.child_mut();flex.add_child(Label::ew(self.ext_task.cloe()));}}Actio::TextChaged(ew_text)=>{self.ext_task=ew_text.cloe();}_=>{}}}}fmai(){//Themaibuttoadtextboxwithsomespacebelow,//allisideascrollablearea.letroot_widget=Portal::ew(Flex::colum().with_child(Flex::row().with_child(TextBox::ew("")).with_child(Butto::ew("Addtask")),).with_spacer(VERTICAL_WIDGET_SPACING),).costrai_horizotal(true);letmai_widow=WidowDescriptio::ew(root_widget).title("To-dolist").widow_size((400.0,400.0));AppLaucher::with_widow(mai_widow).with_delegate(Delegate{ext_task:Strig::ew(),}).lauch().expect("Failedtolauchapplicatio");}

功能介绍

Masonry 是一个 Rust GUI 框架。 Masonry 提供了用于创建窗口的平台(使用 Glazier 作为后端),每个窗口都包含一个 Widget 树。它还提供了用于在 runtim...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论