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

相关推荐
红尘散仙11 小时前
一套 Rust 核心,跑通 Tauri + React Native
react native·react.js·rust
feasibility.11 小时前
反爬十层妖塔:现代爬虫攻防的立体战争
爬虫·python·科技·scrapy·rust·go·硬件
王木风13 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
迷渡15 小时前
聊一聊 Bun 用 Rust 重写这件事
开发语言·后端·rust
RustCoder16 小时前
MangoFetch:一个用 Rust 写的 CLI/TUI 高性能的下载工具
后端·rust·开源
fox_lht20 小时前
第十二章 泛型、接口和生命周期
开发语言·后端·rust
小杍随笔20 小时前
【iNovel 后端架构深度解析:基于 Rust + Tauri 2 的桌面应用服务端设计】
jvm·架构·rust
小杍随笔21 小时前
Axum+Leptos全栈集成实战
开发语言·后端·架构·rust
咸甜适中21 小时前
rust语言学习笔记Trait之 From 和 Into (类型转换)
笔记·学习·rust
techdashen1 天前
Rust 社区在 4 月做了什么:项目管理月报解读
开发语言·rust·mfc