You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust应用中获取系统主题设置?

在Rust中跨平台获取系统主题

可以借助成熟的跨平台Rust crate实现,无需单独对接各系统API,以下是两种实用方案:

1. 使用dark-light crate

这个 crate 专门用于检测系统明暗主题,支持Windows、macOS、Linux(GNOME/KDE/XFCE等主流桌面环境),是最省心的跨平台方案。

使用步骤:

  • 在Cargo.toml中添加依赖:
[dependencies]
dark-light = "1.0"
  • 示例代码:
use dark_light::Mode;

fn main() {
    match dark_light::detect() {
        Ok(Mode::Dark) => println!("当前系统主题是深色"),
        Ok(Mode::Light) => println!("当前系统主题是浅色"),
        Ok(Mode::System) => println!("当前主题跟随系统全局设置"),
        Err(e) => eprintln!("主题检测失败: {}", e),
    }
}

2. 自定义跨平台检测(进阶场景)

如果需要更底层的控制,可以针对不同平台分别处理:

  • Windows:调用GetSysColor或Windows.UI.ViewManagement.UISettings相关API
  • macOS:读取NSUserDefaults中的AppleInterfaceStyle键值
  • Linux:读取桌面环境的配置文件(如GNOME的org.gnome.desktop.interface.color-scheme)

不过这种方式需要编写大量平台分支代码,仅适合有特殊需求的场景,普通应用优先推荐dark-light。

内容的提问来源于stack exchange,提问作者I NN_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:42:06