rust编程 UI框架 -druid -Selector选择器
Selector是一个特殊命令的标识符
这应该是一个唯一的字符串标识符。不允许使用具有相同标识符但不同有效负载类型的多个选择器,这可能导致 Command: : get 和 get _ uncheck 出现恐慌。
Type 参数 T 指定命令的有效负载类型
某些选择器是由druid定义的,并且对框架有特殊的意义; 它们在druid: : commands 中列出
pub const NOOP: Selector
一个什么都不做的选择器
pub fn to(self, target: impl Into<Target>) -> Command
将其转换为具有指定 Target 的命令。
pub const fn new(s: &'static str) -> Selector<T>
用给定的字符串创建一个新的 Selector。
pub fn with(self, payload: T) -> Command
这个选择器为 Command: : new 提供了方便的方法。
如果有效负载是() ,就不需要调用这个函数,因为 Selector < () > 实现 Into < Command > 。
默认情况下,该命令将具有 Target: : Auto。
选择器和AppDalegate使用
AppDalegate提供用于处理和修改顶级事件的挂钩的类型。
AppDalegate是一种特性,允许在事件传递到小部件树之前处理和修改事件。
对于窗口和菜单管理来说,这是一个很自然的地方。
可以通过在自己的类型上实现其方法来自定义 AppDalegate。
pub fn event(&mut self,ctx: &mut DelegateCtx<'_>,window_id: WindowId,event: Event,data: &mut T,env: &Env
) -> Option<Event>
此函数接收所有非命令事件,然后再向下传递。
这个函数的返回值将在树中传递。这可以是传入的事件、不同的事件或没有事件。在所有情况下,update ()方法都将像往常一样调用。
pub fn command(&mut self,ctx: &mut DelegateCtx<'_>,target: Target,cmd: &Command,data: &mut T,env: &Env
) -> Handled
应用委托命令处理程序。
这个函数在每个(Target,Command)对被发送到树之前被调用。
如果您的实现返回 Handled::No,该命令将沿小部件树发送。否则不会。
要做比这更复杂的事情,您可以通过 DelegateCtx::submit_command 提交任意命令。
pub fn window_added(&mut self,id: WindowId,data: &mut T,env: &Env,ctx: &mut DelegateCtx<'_>
)
窗口创建事件的处理程序。该函数在添加窗口后调用,允许您自定义应用程序的窗口创建行为。
pub fn window_removed(&mut self,id: WindowId,data: &mut T,env: &Env,ctx: &mut DelegateCtx<'_>
)
窗口删除事件的处理程序。此函数在窗口被删除后调用。
下一章使用选择器和AppDelegate实现异步处理
效果图
rust编程 UI框架 -druid -Selector选择器相关推荐
- 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义、支持跨进程回调
YImagePicker 项目地址:yangpeixing/YImagePicker 简介: 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义.支持跨进程回调 ...
- 【Rust日报】2023-01-14 实验性的跨平台 UI 框架 viewbuilder
clap v4.1 CLI参数解析器clap发布 v4.1,一个小版本.主要改变是错误消息的改进. v4.1文章链接,https://epage.github.io/blog/2023/01/clap ...
- Android 开源UI框架汇总
1. github排名 https://github.com/trending,github搜索:https://github.com/search 2.https://github.com/wasa ...
- Android 需要学习的UI框架
Android需要了解学习的UI框架等 UI Awesome-MaterialDesign - MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局, ...
- 原有ui项目调用qml_从0开始写前端UI框架:概述
# 缘起 经常听说:不要重复造轮子,我深同此看法.如果在项目开发阶段,你还在研究和仿造现成的轮子,那项目的交付期将会是遥遥无期,能不能造出轮子不说,就算是造出的轮子,功能别人已经实现过了的功能,你的 ...
- 从0开始写前端UI框架:概述
缘起 经常听说:不要重复造轮子,我深同此看法.如果在项目开发阶段,你还在研究和仿造现成的轮子,那项目的交付期将会是遥遥无期,能不能造出轮子不说,就算是造出的轮子,功能别人已经实现过了的功能,你的轮子会 ...
- 【HTML③】JavaScript基础、使用JavaScript制作网页特效、使用前端库及UI框架快速开发
[HTML③]JavaScript基础.使用JavaScript制作网页特效.使用前端库及UI框架快速开发 八.JavaScript基础 1.JavaScript JavaScript简称JS是用于制 ...
- nio学习之Selector选择器
nio学习之Selector选择器 Selector选择器 三个相关的类 如何创建选择器 SelectionKey选择键相关的方法 选择器的使用 服务器端模板代码 selector.select()方 ...
- 2015最流行的Android组件、工具、框架大全 UI框架大全
Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...
- 前端Js框架 UI框架汇总 特性 适用范围 选择
身为一个资深后端工程师,面对层出不穷的前端框架,总让人眼花缭乱,做一个综合解析贴,从全局着眼,让我们明白各种前端框架的应用范围,为如何选择前端框架,从不同的维度提供一些线索,做为一个长期优化贴,欢迎指 ...
最新文章
- 微软OOXML申请国际文档标准已获通过 中国投反对票
- 谁说数学不好,就不能成为编程大佬
- C-二维数组,多维数组
- synchronized和ReentrantLock区别
- 【机器学习算法-python实现】PCA 主成分分析、降维
- node.js Express框架入门
- 【python】lambda函数
- SyntaxHighlighter3.0.83 配置
- 【C语言】Linux 文件读写
- 矩阵迹的常用性质,导数,以及推导过程
- CS231n课程笔记翻译:卷积神经网络笔记
- 远程计算机的凭据无法工作,Windows远程桌面时提示凭证不工作问题的解决办法...
- outlook 签名_Outlook 2007中的电子邮件签名礼节-适当的Flair
- 为什么 ChatGPT 会引起 Google 的恐慌?
- 全网最全-超大模型+分布式训练架构和经典论文
- RAD Studio XE (DelphiXE)官网下载地址与注册
- 常用TCP/UDP端口号大全
- 斐波那契数列(前30)Python
- 电容相位滞后?电感超前
- 项目案例:论坛短信息
热门文章
- 安徽大学计算机专业毕业论文格式,安徽大学本科毕业论文格式.doc
- mtk audio笔记
- 面向对象基础(类封装继承等等)
- 第七章---8253和8255芯片
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
- flea-common使用之通用策略模式实现
- python 算24 代码
- 华为S5700交换机登录认证配置学习笔记
- 主板风扇转不开机是什么问题_电脑主板通电,风扇也转,怎么开不了机,显示屏也没反应...
- 计算机实践教程作业桌面管理截图,如何将电脑现在的桌面截图,并保存在考试题目里面...