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

相关推荐
S***q1921 天前
Rust在系统工具中的内存安全给代码上了三道保险锁。但正是这种“编译期的严苛”,换来了运行时的安心。比如这段代码:
开发语言·后端·rust
T***u3331 天前
Rust在Web中的 Web框架
开发语言·后端·rust
Q***f6351 天前
Rust在嵌入式中的功耗优化
开发语言·后端·rust
H***99761 天前
Rust包管理策略
开发语言·后端·rust
p***s911 天前
Windows安装Rust环境(详细教程)
开发语言·windows·rust
大鱼七成饱1 天前
Cloudflare unwrap崩溃?整理下Rust危险操作
rust
程序员老刘1 天前
假如Flutter用Rust,你也写不出更快的App
flutter·rust·dart
h***8561 天前
Rust在Web中的前端开发
开发语言·前端·rust
Rust语言中文社区1 天前
【Rust日报】 walrus:分布式消息流平台,比 Kafka 快
开发语言·分布式·后端·rust·kafka
武子康2 天前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node