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

news/2025/11/16 14:59:46/文章来源:https://www.cnblogs.com/Jordan-Haidee/p/19121959

本系列教程对应的代码已开源在 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.rhkb.cn/news/169873.html

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

相关文章

C++ GUI 选型记

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

mem reduct 没有托盘图标

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

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

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

Pycharm 设置

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

新建第一个项目

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

US$11 High Quality LED BDM Frame Clip Cable

High Quality LED BDM Frame Clip CableWorks together with LED BDM Frame,So if your original LED BDM Frame Clip cable is lost or damaged,you could order this alone, it is made by High Quality .Package in…

【Rust GUI开发入门】编写一个本地音乐播放器(11. 支持动态明暗主题切换) - Jordan

本系列教程对应的代码已开源在 Github zeedle暗色主题 亮色主题Slint UI内置全局调色板,支持运行时动态切换明暗主题,这通过更改Palette.color-scheme来实现:Palette.color-scheme = ColorScheme.light变为亮色主题…

利用接口中的静态虚拟成员实现自定义配置节

本文介绍了C# 11中静态虚拟成员接口的新特性,展示了如何利用这一特性简化自定义配置节的注册和使用过程。通过定义IConfigOptions接口和扩展方法,实现了类型安全的配置管理,减少了重复代码。利用接口中的静态虚拟成…

天线增益与有源接收面积之间的关系

最近在看卫星通信,在学习星地链路传输的时候看到以下内容对于频率低于 1 GHz 的频段,使用有源接收面积接收电波时效率提升很困难 频率较低时,波长较长,小口径天线有效接收面积(有效口径)反而较小 有源接收面积 \…

US$54 AM29FXXX Adapter for CG Pro 9S12 Programmer

AM29FXXX Adapter for CG Pro 9S12 ProgrammerAM29FXXX Adapter is used to do AM29F200/AM29F400/AM29F800 series chip for ECU repair, Immobilizer repair etc.If your CG Pro 9S12 is with new design, please ch…

流量分析

流量分析 主要还是对近期遇到的流量题目做一个总结,重在思路总结,方便以后翻阅@_@ 题目:[第九章][9.3.2 webshell混淆流量分析]webshell流量分析 NetA一把梭手搓 wireshark,筛选http->按包的长度(length)排序…

RPC在分布式存储系统中的应用 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

US$134 Tango Toyota Key Maker Authorization Service

Tango Toyota Key Maker Authorization ServiceIf you buy Tango Key Programmer Basic Software (SK80), and want to get the Toyota Key Maker Authorization, you can buy this service.Tips: No need shipping, a…

实用指南:矩阵结构体 图片绘制 超级玛丽demo6

实用指南:矩阵结构体 图片绘制 超级玛丽demo6pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

C语言实战任务:贪吃蛇(2)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【Rust GUI开发入门】编写一个本地音乐播放器(10. 拼装UI组件) - Jordan

本系列教程对应的代码已开源在 Github zeedle 将前文写的零散的UI组件(歌曲列表/播放控制面板/歌词面板/设置面板)拼装起来,组成最终的音乐播放器UI,用TabWidget分成多标签页,每一个标签页分担不同的功能:export…

破解 Pycharm

破解 Pycharm破解工具:下载链接: https://pan.baidu.com/s/1C4BB55LXPxW4s9lZlFt4FA?pwd=s5jc 提取码: s5jc 破解完成后,这个目录依然不能删除,否则破解失效。所以可将该目录保存至一个很少打开的位置。 先执行…

CAP 8.4 版本发布通告

前言 今天,我们很高兴宣布 CAP 发布 8.4 版本正式版。从 8.3.0 版本以来,我们陆续发布了 5 个小版本,在这些版本中我们主要专注于提升系统性能、增强 Dashboard 功能、改进存储提供程序支持,并修复了一系列已知问题…

STM32 智能垃圾桶项目笔记(一):超声波模块(HC-SR04)原理与驱动实现 - 教程

STM32 智能垃圾桶项目笔记(一):超声波模块(HC-SR04)原理与驱动实现 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…