Android和iOS的Qt QML在系统范围内改变颜色



我想写一个小的应用程序,有黑暗的背景。为了让生活更轻松,我使用Qt快速控件。

例如ToolButton。当未按下的工具按钮有一个黑色字体,所以它是不可见的在我的黑色背景。

阅读其他帖子似乎(虽然很难相信),你不能设置文本颜色(或其他颜色的问题)为工具按钮或许多其他Qt快速控件。建议的解决方案是对这些元素和/或样式进行完整的复制/粘贴重新编码。这听起来很像Qt/Digia,很难相信你想要"定制"的第一件事就是颜色(前-后-文本-激活-非激活等等…)。

有没有其他方法可以在整个应用范围内改变这些颜色?在Qt小部件中,我将修改QApplication::QPallette,并在几行内完成。

请帮帮我!

Nils

你真的试过了吗?你从哪里读到这是不可能的?我没有做太多的调色板,但搜索"调色板qt 5.2"给了我SystemPalette作为第二个结果,它从qt 4.7开始就存在了。这些属性是只读的,因此您的意图必须是在c++中设置调色板。

控件/样式的"完整复制/粘贴"是不必要的,即使没有使用SystemPalette:

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
Rectangle {
    width: 400
    height: 400
    color: "#444"
    ToolButton {
        text: "Button"
        style: ButtonStyle {
            label: Text {
                color: "red"
                text: control.text
            }
        }
    }
}

如果您想重用多个控件的样式,只需创建一个组件,无论是作为属性还是在其自己的QML文件。

最新更新