Qt for HarmonyOS/user development guide/qt for harmonyos color theme zh
中文 English
Qt for HarmonyOS 主题设置接口说明
Qt 在 HarmonyOS(OHOS)平台上提供了一组接口,用于控制和感知应用的主题模式(浅色 / 深色 / 跟随系统)。
1. 接口说明
1.1 查询当前主题状态
bool QOhosAppContext::darkThemeActive() const用于判断 Qt 程序当前是否处于深色主题状态。
| 返回值 | 说明 |
|---|---|
| true | 当前使用深色主题 |
| false | 当前使用浅色主题 |
1.2 主题切换通知
void QOhosAppContext::darkThemeActiveChanged(bool darkThemeActive)当 Qt 程序的主题发生切换时触发的信号。
| 参数 | 说明 |
|---|---|
| darkThemeActive | true 表示切换为深色主题,false 表示切换为浅色主题 |
应用可通过连接该信号,在主题切换时更新界面样式。
1.3 设置应用主题模式
void QOhosAppContext::setColorThemeMode(ColorThemeMode mode)用于设置 Qt 程序的主题模式。
ColorThemeMode 枚举值
| 枚举值 | 说明 |
|---|---|
| LightTheme | 浅色主题(Qt 程序的默认主题) |
| DarkTheme | 深色主题 |
| FollowSystemSetting | 跟随系统主题设置,当系统主题切换时,Qt 程序同步切换 |
2. 使用示例
以下示例展示了如何在 Qt 应用中设置主题模式为“跟随系统”,并在主题变化时接收通知:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
auto *appContext = QtOhosExtras::QOhosAppContext::instance();
appContext->setColorThemeMode(
QtOhosExtras::QOhosAppContext::ColorThemeMode::FollowSystemSetting);
QLabel *label = new QLabel(&window);
QObject::connect(
appContext,
&QtOhosExtras::QOhosAppContext::darkThemeActiveChanged,
label,
[label](bool darkThemeActive) {
// Theme change callback
// Update UI according to darkThemeActive
}
);
window.show();
return app.exec();
}3. 注意事项
- 若设置为 ,应用主题将自动与系统主题保持一致。
FollowSystemSetting
- 可通过 在任意时刻查询当前主题状态。
darkThemeActive()
- 建议在主题切换回调中统一更新调色板、样式表或自绘控件的颜色配置。