У меня есть простой список CheckBox
es, по одному на каждый день недели. Они зависят от значения days
, целого числа, использующего маску, по 1 биту на каждое CheckBox
.
Назначение на days
как кнопкой "очистить все", так и кнопкой "установить все" работает и они обновляются. Однако после щелчка по любому из полей они больше не реагируют на изменения в зависимом свойстве days
.
Почему это? Они как-то развязываются. Если да, то должен ли я повторно связывать их вручную, и если да, то почему?
Вот код,
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.3
ApplicationWindow
{
visible: true
width: 800
height: 400
property int days: 0
ColumnLayout
{
Repeater
{
model: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
CheckBox
{
text: modelData
checked: (days & (1<<index)) != false
onClicked:
{
if (checked) days |= (1<<index);
else days &= ~(1<<index);
}
}
}
Button
{
text: "clear all"
onClicked: days = 0
}
Button
{
text: "set all"
onClicked: days = 127
}
}
}
который выглядит так:
Чтобы воспроизвести проблему, сначала нажмите «установить все» и «очистить все». затем установите некоторые флажки. Затем снова нажмите «установить все» и «очистить все». Вы увидите, что флажки, которые вы отметили, больше не затрагиваются.
Благодарю.