【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 ?

相关推荐
星释1 天前
Rust 练习册 10:多线程基础与并发安全
开发语言·后端·rust
2401_860319521 天前
【无标题】
开发语言·学习·rust
微小冷1 天前
Rust实战教程:做一个UDP聊天软件
rust·udp·egui·聊天软件·rust教程·用户图形界面
星释2 天前
Rust 练习册 :Rail Fence Cipher与栅栏密码
开发语言·算法·rust
Source.Liu2 天前
【Chrono】Cargo.toml 配置文件深度分析
rust·time
shykevin2 天前
Rust入门
开发语言·后端·rust
lpfasd1232 天前
Rust + WebAssembly:让嵌入式设备被浏览器调试
开发语言·rust·wasm
星释2 天前
Rust 练习册 :Luhn Trait与Trait实现
网络·算法·rust
lqj_本人2 天前
Rust与Go:现代系统编程语言的深度对比
开发语言·golang·rust
星释2 天前
Rust 练习册 :Macros与宏系统
开发语言·后端·rust