【Rust GUI开发入门】编写一个本地音乐播放器(13. 实现按键绑定) - Jordan

本系列教程对应的代码已开源在 Github zeedle

本篇文章介绍Slint UI如何为播放器页面添加按键绑定,核心思路是当窗口聚焦时,扫描用户按键输入,命中指定按键时,自动调用相关回调函数。Slint UI支持FocusScope来处理上述逻辑:

export component MainWindow inherits Window {...forward-focus: key-input-handler;...key-input-handler := FocusScope {key-released(event) => {if event.text == Key.Space {root.toggle_play();return accept;} else if event.text == Key.RightArrow || event.text == Key.DownArrow {root.play_next();return accept;} else if event.text == Key.LeftArrow || event.text == Key.UpArrow {root.play_prev();return accept;} else if event.text == Key.F1 {tabs.current-index = 0;return accept;} else if event.text == Key.F2 {tabs.current-index = 1;return accept;} else if event.text == Key.F3 {tabs.current-index = 2;return accept;} else if event.text == Key.F4 {tabs.current-index = 3;return accept;}return reject;}}
}

代码解释

上述代码指定了,当某个按键按下时,所触发的操作:

  • 空格键:播放/暂停当前歌曲
  • 上键头/左键头:上一首歌曲
  • 下箭头。右箭头:下一首歌曲
  • F1:切换到音乐列表页
  • F2:切换到歌词页
  • F3:切换到设置页
  • F4:切换到关于页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ GUI 选型记

若干年前,我入门了 C++,写了一个控制台贪吃蛇,觉得自己逐渐理解一切……“我想创建 GUI!” 于是漫长的选型过程开始了。前言 若干年前,我入门了 C++,写了一个控制台贪吃蛇,觉得自己逐渐理解一切…… “我想创建…

mem reduct 没有托盘图标

我电脑内存不是很大,又不想一直挂个任务管理器,就装了个mem reduct,结果最近发现他的图标不显示了,我要的不就是这个吗?于是重新装了一遍它,还是不行……得,开始搜寻解决方法 最后在GitHub中和mem reduct毫不相…

python把图片合并成gif图

from PIL import Image import osimages = [Image.open(f) for f in sorted(os.listdir(J:\\PytorchProject\\jpg3\\)) if f.endswith(.jpg)] images[0].save(output2.gif, save_all=True, append_images=images[1:], …

TypeScript 泛型 T 详细解释

什么是泛型 T 是一个类型变量,代表"某种类型"举个例子loadMore: (page: number) => Promise<T[]>; 相当于说:这个函数返回一个Promise,Promise解析的结果是T类型的数组实际使用时的具体化 // 当…

网站建设夬金手指花总wordpress 国际支付宝

需求实现支付宝类似的效果&#xff1a; 思路&#xff1a; 1.首先建立展开收起按钮&#xff0c;这里使用的是uview里面的icon图标。 2.其次建立展开菜单内容&#xff0c;这里只演示了文本信息&#xff0c;后期引入首页应用。 3.最后写js逻辑&#xff0c;展开收起时改变盒子高度和…

【Rust GUI开发入门】编写一个本地音乐播放器(12. 国际化应用-多语言支持) - Jordan

本系列教程对应的代码已开源在 Github zeedle 本篇文章介绍Slint UI如何为播放器页面添加多语言支持,让你的应用走向国际!Translations | Slint Docs1. 使用@tr修饰.slint中的字面量 就像这样:2. 提取要翻译的字符串…

网站建设企业开发公司跨境进口网站怎么做

axios本身是没有同步请求的&#xff0c;要实现同步请求&#xff0c;用到的是ES7的async和await ES7的异步特性async / await async用于声明一个函数是异步的&#xff0c;await用于声明在一个异步函数中等待语句执行完毕。也就是说await只能在async函数中使用。简单示例如下&a…

网上销售 网站建设2020网页游戏

1.简介 Fiddler是一款强大的HTTP抓包工具&#xff0c;它能记录所有客户端和服务器的http和https请求&#xff0c;允许你监视&#xff0c;设置断点&#xff0c;甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说&#xff0c;都有很大的帮助。Fiddler提供的功能基本上能…

2025秋_6

今天学习了java

程序语言杂谈:C/C++

谈谈 C/C++ 的优劣C C++问世时间、创始公司 1972,Bell Laboratory 1979,Bell LaboratoryOOP 能力 不支持 强大,但复杂类型系统 强类型 强类型运行模式 原生编译 原生编译跨平台能力 一般 一般性能 极高 极高关键词 …

2025秋_7

今天学习了java

PEP8 规范

PEP8 是 Python 官方推荐的代码风格指南,旨在提高代码的可读性和一致性。 官方文档:https://legacy.python.org/dev/peps/pep-0008/ 中文翻译文档:https://blog.csdn.net/ratsniper/article/details/78954852 缩进与…

Pycharm 设置

使用新老 UI修改注释样式Block comment:修改多行注释的字体颜色 Doc Comment –> Text:修改文档注释的字体颜色 Line comment:修改单行注释的字体颜色

9.9网站怎么做wordpress文件上传函数

大家好,今日继续给大家讲解VBA数据库解决方案的第21讲,如何利用VBA代码在已有的数据表中删除&#xff0c;添加&#xff0c;修改字段。这个内容是操作数据库的一项必修的内容&#xff0c;还望大家在实际工作中多利用&#xff0c;所以这节的知识&#xff0c;对于读者提高自己的数…

[NOIP 2016 提高组] 组合数问题

我们先考虑暴力,暴力枚举每一个\(i,j\)暴力算\(\binom{i}{j}\) 时间复杂度为\(O(T*N^3)\),显然超时 然后我们发现\(N,M \le2000\) 我们考虑使用组合数的递推公式预处理\(\binom{0}{0}\)到\(\binom{2000}{2000}\)。 这…

学校网站建设需求分析做响应式网站最大宽度

实现: 1) cImage:抽象类; cImageReal:派生类, 不可直接实例化; cImageProxy:派生代理类, 可直接实例化用来代理cImageReal; NOTICE:派生代理类用来简化对特定派生类的使用. 使用: 实例化代理类, 然后使用. 1) 设计框架 /*image.hpp*/ #pragma once #…

网站后台上传文章用php做网站后台

一只小猴子一天摘了许多桃子&#xff0c;第一天吃了一半&#xff0c;然后忍不住又吃了一个&#xff1b;第二天又吃了一半&#xff0c;再加上一个&#xff1b;后面每天都是这样吃。到第10天的时候&#xff0c;小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。 实例…

镇江建设工程质量监督局网站简述基于构件的软件开发流程

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 情景描述&#xff1a;只是想简单写个 ActiveMQ 的小样&#xff0c;启动服务却报错&#xff1a; Error starting ApplicationContext…

工作站做网站使用oss做静态网站

0. 引言 在生产中我们要尽可能避免单点故障&#xff0c;nginx也不例外&#xff0c;因此搭建主备节点必不可少&#xff0c;今天我们来学习下如何利用keepalived实现主备 1. keepalived简介 keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件&#xff0c;它主要用于高…

新建第一个项目

点击 New Project:为项目进行配置:这是项目的虚拟环境,里面的文件不能修改:新建文件夹:给文件夹命名:新建 Python 文件:给文件命名: