如何在不实现视图的情况下处理草书事件

2024-05-20

我正在编写一个应用程序cursive https://docs.rs/cursive/0.16.3/cursive/GUI,我想当用户按下某些键时执行某些操作。例如,当使用表格视图 https://docs.rs/cursive_table_view/0.13.0/cursive_table_view/struct.TableView.html当用户选择一行并按下某个键(除了Enter这是由处理的TableView并允许我实施on_submit)。这些操作将由所选行参数化,即使用索引或行中的某些值。

由于我无权访问on_event并且似乎没有我可以注册的关联回调TableView,我只能考虑存储一些“全局”参数on_select然后注册全局草书处理程序ala add_global_callback。这很快就会变得一团糟,所以我希望有更好的方法。

我以为我可以做相当于扩展TableView就像 OOP 中的继承一样,但我问here https://stackoverflow.com/questions/66396321/rust-inheritance没有取得多大成功,而是在评论中得到了明智的建议,只是询问我想要完成的任务。


我想你只需要包装你的TableView in an OnEventView你应该能够捕获任何你想要的事件,并且它会通过任何你不想要的事件。

cursive.add_layer(
    OnEventView::new(
        TableView::new( ... )
    ).on_event(...)

我看到了你的另一个帖子。我对此有两分钱:

所以而不是 OOP 的扩展方式TableView您插入一个视图“上方”TableView这确实有一些作用。这可以被认为与扩展相同,但它更通用。这OnEventView可以“包装”任何视图,而扩展特定类仅对该类有用。 扩展通常意味着您必须实现一堆与捕获事件无关的样板文件,而这正是您在本例中想要做的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不实现视图的情况下处理草书事件 的相关文章

随机推荐

  • 我在这个 log4net 实现中做错了什么?

    与许多其他人一样 我正在尝试将 Log4net 实现到我的 C net 应用程序中 但我无法让它为我工作 我已经做了很多搜索 包括在这个网站上 并尝试了许多不同的解决方案 但还没有任何对我有用的解决方案 所以简单的问题是 我做错了什么 As
  • Javascript 播放声音性能重吗?

    我正在用 Javascript 制作一个简单的游戏 当一个物体与墙壁碰撞时 它会发出 砰 的声音 声音的响度取决于物体的速度 速度越高 gt 声音越大 播放功能 playSound function id vol ID of the sou
  • 如何批量获取子字符串在字符串中的位置

    获取子串的位置 Set str1 This is Test string Set sstr Test 这里我需要获取 Test 8 的位置 谢谢 echo OFF SETLOCAL Set str1 This is Test string
  • 在回调中使用await(Microsoft Bot Framework v4 Nodejs)

    我正在尝试将回复发送回chatbot emulator从内部回调 async getUserDetails step console log inside get userdetaiuls modeiule this userDBObjec
  • 如何在 R 中的 dygraph 标题中使用 UTF-8 字符

    使用 Rstudio Windows8 当我使用 dygraph 函数绘制时间序列时 在尝试在主标题中使用 UTF 8 字符时遇到问题 library dygraphs dygraph AirPassengers main T tulo 这
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • Linq to 实体使用 `Func` 在生成匿名对象的 select 语句中创建属性

    我正在使用 linq to 实体开发一种简单的文本搜索方法 我想在几个地方重用该方法 看起来有点像这样 IQueryable
  • MFC 中位图背景绘制的线程类型

    我有一个 MFC 文档 视图 C 图形应用程序 它将所有绘图都绘制到离屏位图 然后将其复制到 OnDraw 方法中提供的 CDC 指针 在过去的几天里 我一直在寻找将绘图组件放置在单独的工作线程中 这样它就不会停止 GUI 当我执行此操作时
  • 调用异步方法时什么情况下使用.Wait()

    我有以下内容async我的 asp net mvc 5 Web 应用程序中长时间运行的方法 public async Task
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • django post_save 信号和 ManyToManyField (和 Django Admin)

    我的 post save 函数有问题 该函数已正确触发 但实例不包含插入的值 我用ipdb检查了该功能 没有任何问题 只是 ManyToManyField 是空的 代码 receiver post save sender Supplier
  • 处理大数据二进制文件

    我正在处理包含原始数据的大型二进制文件 每个大约 2 GB 这些文件具有明确定义的结构 其中每个文件都是一个数组events 每个事件都是一个数组data banks Each event and data bank有一个结构 header
  • 如何在Vue.js中格式化当前日期格式

    我需要获取当前日期Vue js 为此 我使用了以下方法 today date new Date toJSON slice 0 10 replace g today date将给出日期2019 09 11格式 有什么方法可以自定义这种格式吗
  • 如何从 C++ 中的文件中读取双精度值

    如何从 C 中的文件中读取 double 值 对于整数 我知道您可以使用 getline 然后使用 atoi 但我没有找到双倍函数的数组 什么可用于读取双精度数或将 char 数组转换为双精度数 您可以使用流提取 std ifstream
  • 从 UNIX 命令行向串行端口发送字节?

    我想使用命令行将字节流发送到串行端口 这可能吗 我的串口位于 dev cu usbserial A700dYoR在我的 Mac 上 例如 如果我想将整数 50 或字符串 data 发送到该串行端口 我该怎么做 我对 UNIX 的了解非常有限
  • 如何在 Windows 上的 Eclipse 中设置 Clang 工具链?

    我为一个愚蠢的问题道歉 但我在网上找不到答案 我正在努力为 64 位计算机上的 Windows 7 中的 Eclipse 设置 Clang 编译器 链接器 我对 C 的了解非常过时 并且从未在 Eclipse 中工作过 我想要实现的是在 W
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 在 AlpineLinux 上使用使用 glibc 的共享库

    我正在开发 AlpineLinux 安装在我的计算机上 而不是安装在 docker 中 并且我正在尝试使用依赖于 glibc 的共享库 由于 Glibc 没有集成到这个发行版中 我看到了一个替代方案 gcompat 旨在提供与为 Glibc
  • Microsoft SAPI 是否像 system.speech api 一样支持离线模式下的语音识别?

    我已经阅读了Microsoft SAPI的官方文档 但我找不到该API是否可以在离线模式下使用 in there https stackoverflow com a 2982910 4606266 他们说微软SAPI是基于服务器的语音识别A
  • 如何在不实现视图的情况下处理草书事件

    我正在编写一个应用程序cursive https docs rs cursive 0 16 3 cursive GUI 我想当用户按下某些键时执行某些操作 例如 当使用表格视图 https docs rs cursive table vie