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

相关推荐
SomeB1oody10 小时前
【RustyML入门】2.9. MeanShift
开发语言·后端·机器学习·rust·教程
SomeB1oody20 小时前
【RustyML入门】2.10. 主成分分析
开发语言·后端·机器学习·rust·教程
yushikong21 小时前
关于rust开发ch32x033f8p6的一些记录
开发语言·后端·rust
程序员爱钓鱼1 天前
Rust Borrow借用详解:不转移所有权访问数据
后端·面试·rust
程序员爱钓鱼1 天前
Rust Copy详解:隐式复制与轻量数据类型
前端·后端·rust
kaixin_learn_qt_ing1 天前
了解Rust/Tauri
rust
doiito1 天前
【Agent Harness】Gliding Horse 最新升级:把“智能闭环”真正跑通的一次深度优化
rust·架构设计·系统设计·ai agent
沫璃染墨1 天前
《Qt从零入门系列(一):Qt框架初识——从发展历史到跨平台开发》
c++·qt·系统架构·gui
梦醒沉醉2 天前
15、Rust程序设计语言——无畏并发
rust