Этот код работает для меня:
MyRadioGroup.qml
import QtQuick 1.0
QtObject {
property Item selected : null
}
MyRadioButton.qml
import QtQuick 1.0
Rectangle {
id: sideButton
property string text: 'Button'
property MyRadioGroup radioGroup
color: radioGroup.selected === sideButton ? '#E2EBFC' :
(sideButtonMouseArea.containsMouse ? '#DDDDDD' : '#F4F4F4')
MouseArea {
id: sideButtonMouseArea
anchors.fill: parent
hoverEnabled: true
onClicked: sideButton.radioGroup.selected = sideButton
}
Text {
id: sideButtonLabel
text: sideButton.text
font.pixelSize: 20
font.family: 'Tahoma'
anchors.centerIn: sideButton
color: radioGroup.selected === sideButton ? '#E2EBFC' : '#787878'
}
}
main.qml
import QtQuick 1.0
Rectangle {
height: 600
width: 600
MyRadioGroup {
id: radioGroup1
}
Column {
anchors.fill: parent
MyRadioButton {
anchors { left: parent.left; right: parent.right }
text: "Button 1"
radioGroup: radioGroup1
height: 100
}
MyRadioButton {
anchors { left: parent.left; right: parent.right }
text: "Button 2"
radioGroup: radioGroup1
height: 100
}
MyRadioButton {
anchors { left: parent.left; right: parent.right }
text: "Button 3"
radioGroup: radioGroup1
height: 100
}
MyRadioButton {
anchors { left: parent.left; right: parent.right }
text: "Button 4"
radioGroup: radioGroup1
height: 100
}
}
}
Что он делает: я создал контейнер MyRadioGroup
для хранения выбранного элемента. Затем я декларативно свяжу его свойство selected
с собственностью color
моего MyRadioButton
-s, поэтому он будет обновляться при каждом изменении selected
.
После сказанного, пожалуйста, проверьте, что вы компонент провайдера уже не содержат некоторые вещи, как это --- возможно, вы заново изобретать колесо.
Возможно, вы можете уточнить свою проблему ... и, возможно, вам стоит взглянуть на это: http://www.catb.org/esr/faqs/smart-questions.html#classic –
«Я использую этот прямоугольник вместо кнопки "--- так, кнопка является опцией, однако кнопка не является частью ядра qtquick. Какую внешнюю библиотеку вы используете? 'qt-components' для symbian/meego или что-то из телефона Ubuntu? Пожалуйста, проверьте, может быть, есть стандартный компонент для переключателя? –