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

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

暗色主题 亮色主题

Slint UI内置全局调色板,支持运行时动态切换明暗主题,这通过更改Palette.color-scheme来实现:

  • Palette.color-scheme = ColorScheme.light变为亮色主题
  • Palette.color-scheme = ColorScheme.dark则变为暗色主题

把上述代码放入UI主窗口的function/callback中,通过用户点击按钮触发调用:

slint 复制代码
public function set_light_theme(yes: bool) {
	if (yes) {
		Palette.color-scheme = ColorScheme.light;
	} else {
		Palette.color-scheme = ColorScheme.dark;
	}
}

注意

在Slint UI最新版本(1.13.1)中,ColorScheme无法导出到Rust中使用,因此,在function/callback中实现主题切换是推荐做法,在Rust代码中无法实现该功能,参考如下Github讨论:

How to access/change value of global predefined Palette variable in Rust API ?

相关推荐
方安乐几秒前
react笔记之useCallback/useEffect闭包陷阱
前端·笔记·react.js
沐墨染几秒前
黑词分析前端组件设计:双面板交互与黑词进度监控
前端
运维行者_5 分钟前
用Applications Manager监控HAProxy:保障负载均衡高效稳定
运维·开发语言·前端·数据库·tcp/ip·负载均衡·服务器监控
东东5162 小时前
基于ssm的网上房屋中介管理系统vue
前端·javascript·vue.js
harrain3 小时前
什么!vue3.4开始,v-model不能用在prop上
前端·javascript·vue.js
fanruitian9 小时前
uniapp android开发 测试板本与发行版本
前端·javascript·uni-app
rayufo9 小时前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
RANCE_atttackkk9 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
2501_9445255410 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter
李白你好11 小时前
Burp Suite插件用于自动检测Web应用程序中的未授权访问漏洞
前端