如何改变 "Qt Quick - Control 2 RoundButton" 的颜色

How change the color of "Qt Quick - Control 2 RoundButton"

任何人都知道如何更改控件的颜色 "RoundButton",自 2.1 以来就存在于 Qt 控件中。

我尝试更改背景,但是如果我将 "Rectangle" 放在项目上,圆形按钮会变成矩形,我不知道该放什么。

RoundButton {
    id: roundButton
    x: 243
    y: 244
    width: 20
    height: 20

    text: "ah"
    wheelEnabled: false

    background: Rectangle {
        color: "yellow"
        height: 50
        width: 50
    }
}

在 Qt 5.10 中,您可以使用调色板 属性 来避免覆盖背景:

import QtQuick 2.9
import QtQuick.Controls 2.3

ApplicationWindow {
    visible: true

    RoundButton {
        id: button
        text: "ah"

        palette.button: "salmon"
    }
}

虽然目前并非所有样式都尊重调色板 属性:默认和融合样式会这样做,而 Imagine 样式会这样做(主要是文本颜色,因为它是基于图像的样式)。

如果您对特定样式使用哪个调色板角色感到好奇,查看源代码可能是最简单的方法:

http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/Button.qml#n77

尽管记录了角色列表:

https://doc.qt.io/qt-5.10/qml-palette.html#qtquickcontrols2-palette

你应该使用radius

roundButton只是一个Button (as stated here) radius 属性 设置为 360 所以在你的例子中它将是:

RoundButton {
    id: roundButton
    x: 243
    y: 244
    width: 20
    height: 20

    text: "ah"
    wheelEnabled: false

    background: Rectangle {
        color: "yellow"
        implicitHeight: 50
        implicitWidth: 50
       radius: 360
    }
}

请注意,这样做基本上没有用,因为您可以使用 Button 并将半径设置为 360,它会是相同的...