适用于Android和iOS的Qt QML改变了全系统的颜色

时间:2014-05-07 16:21:09

标签: qt colors controls qml

我正在尝试编写一个背景暗的小应用程序。 为了让生活更轻松,我使用了Qt快速控制。

例如ToolButton。 未按下时,ToolButton有一个黑色字体,因此在我的黑暗背景下不可见。

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

那么还有其他任何方式来改变这些颜色吗? 在Qt小部件中,我会修改QApplication :: QPallette,事情只需几行即可完成。

请帮帮我!

尼尔斯

1 个答案:

答案 0 :(得分:0)

你真的尝试过吗?你在哪里读到这是不可能的?我对调色板做的不多,但是搜索" palette qt 5.2"给了我SystemPalette作为第二个结果,它自Qt 4.7以来一直存在。属性是只读的,因此必须在C ++中设置调色板。

A"完整复制/粘贴"即使不使用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文件。