【发布时间】:2016-08-05 22:15:42
【问题描述】:
我有一个简单的CheckBoxes 列表,一周中的每一天都有一个。它们取决于days 的值,一个使用掩码的整数,每个CheckBox 1 位。
使用“全部清除”按钮或“全部设置”按钮都可以分配给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
}
}
}
看起来像这样:
要重现问题,首先单击“全部设置”和“全部清除”。然后点击一些复选框。然后再次单击“全部设置”和“全部清除”。您会看到您选中的框不再受到影响。
谢谢。
【问题讨论】:
标签: qt qml qtquickcontrols