如何在QML中处理系统深色模式

问题描述 投票:0回答:1

我正在使用 QML + Python 创建多平台应用程序。面临处理系统深色模式的挑战(不确定它是否适用于 Windows,但我目前使用的是 Mac)。

现在我使用属性手动设置暗/亮模式。有什么方法可以检测用户的模式并将该值设置为我的属性吗?或者还有其他可能的解决方案吗?

import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs

ApplicationWindow {
    width: 640
    height: 480
    visible: true
    property bool darkMode: false
    
    Text {
        id: textField
        color: {
            switch (darkMode) {
                case true:
                    "white";
                    break;
                case false:
                    "black";
                    break;
            }
         }
    }
}
macos qt qml darkmode
1个回答
0
投票

从 Qt 6.5 开始,您可以简单地执行以下操作:

property bool darkMode: Qt.application.styleHints.colorScheme === Qt.ColorScheme.Dark
© www.soinside.com 2019 - 2024. All rights reserved.