如何改变 "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,它会是相同的...
任何人都知道如何更改控件的颜色 "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,它会是相同的...