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选择器相关推荐

  1. 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义、支持跨进程回调

    YImagePicker 项目地址:yangpeixing/YImagePicker 简介: 小红书图片剪裁框架+微信图片选择器+超高清大图预览+图片自定义比例剪裁,支持 UI 自定义.支持跨进程回调 ...

  2. 【Rust日报】2023-01-14 实验性的跨平台 UI 框架 viewbuilder

    clap v4.1 CLI参数解析器clap发布 v4.1,一个小版本.主要改变是错误消息的改进. v4.1文章链接,https://epage.github.io/blog/2023/01/clap ...

  3. Android 开源UI框架汇总

    1. github排名 https://github.com/trending,github搜索:https://github.com/search 2.https://github.com/wasa ...

  4. Android 需要学习的UI框架

    Android需要了解学习的UI框架等 UI Awesome-MaterialDesign - MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局, ...

  5. 原有ui项目调用qml_从0开始写前端UI框架:概述

    # 缘起 经常听说:不要重复造轮子,我深同此看法.如果在项目开发阶段,你还在研究和仿造现成的轮子,那项目的交付期将会是遥遥无期,能不能造出轮子不说,就算是造出的轮子,功能别人已经实现过了的功能,你的 ...

  6. 从0开始写前端UI框架:概述

    缘起 经常听说:不要重复造轮子,我深同此看法.如果在项目开发阶段,你还在研究和仿造现成的轮子,那项目的交付期将会是遥遥无期,能不能造出轮子不说,就算是造出的轮子,功能别人已经实现过了的功能,你的轮子会 ...

  7. 【HTML③】JavaScript基础、使用JavaScript制作网页特效、使用前端库及UI框架快速开发

    [HTML③]JavaScript基础.使用JavaScript制作网页特效.使用前端库及UI框架快速开发 八.JavaScript基础 1.JavaScript JavaScript简称JS是用于制 ...

  8. nio学习之Selector选择器

    nio学习之Selector选择器 Selector选择器 三个相关的类 如何创建选择器 SelectionKey选择键相关的方法 选择器的使用 服务器端模板代码 selector.select()方 ...

  9. 2015最流行的Android组件、工具、框架大全 UI框架大全

    Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...

  10. 前端Js框架 UI框架汇总 特性 适用范围 选择

    身为一个资深后端工程师,面对层出不穷的前端框架,总让人眼花缭乱,做一个综合解析贴,从全局着眼,让我们明白各种前端框架的应用范围,为如何选择前端框架,从不同的维度提供一些线索,做为一个长期优化贴,欢迎指 ...

最新文章

  1. 微软OOXML申请国际文档标准已获通过 中国投反对票
  2. 谁说数学不好,就不能成为编程大佬
  3. C-二维数组,多维数组
  4. synchronized和ReentrantLock区别
  5. 【机器学习算法-python实现】PCA 主成分分析、降维
  6. node.js Express框架入门
  7. 【python】lambda函数
  8. SyntaxHighlighter3.0.83 配置
  9. 【C语言】Linux 文件读写
  10. 矩阵迹的常用性质,导数,以及推导过程
  11. CS231n课程笔记翻译:卷积神经网络笔记
  12. 远程计算机的凭据无法工作,Windows远程桌面时提示凭证不工作问题的解决办法...
  13. outlook 签名_Outlook 2007中的电子邮件签名礼节-适当的Flair
  14. 为什么 ChatGPT 会引起 Google 的恐慌?
  15. 全网最全-超大模型+分布式训练架构和经典论文
  16. RAD Studio XE (DelphiXE)官网下载地址与注册
  17. 常用TCP/UDP端口号大全
  18. 斐波那契数列(前30)Python
  19. 电容相位滞后?电感超前
  20. 项目案例:论坛短信息

热门文章

  1. 安徽大学计算机专业毕业论文格式,安徽大学本科毕业论文格式.doc
  2. mtk audio笔记
  3. 面向对象基础(类封装继承等等)
  4. 第七章---8253和8255芯片
  5. vue mand-mobile按2.0文档默认安装的是1.6.8版本
  6. flea-common使用之通用策略模式实现
  7. python 算24 代码
  8. 华为S5700交换机登录认证配置学习笔记
  9. 主板风扇转不开机是什么问题_电脑主板通电,风扇也转,怎么开不了机,显示屏也没反应...
  10. 计算机实践教程作业桌面管理截图,如何将电脑现在的桌面截图,并保存在考试题目里面...