Небольшой вопрос, я использовал QAbstractListModel для предоставления данных свойствам QML, первые 2 назначения свойств строки были в порядке, но когда я попытался назначить свойство bool QML, назначение не удалось.
Мои коды похожи на следующие:
ListView
model: MyModel
delegate:
MyItem {
test: MyModel.isRunning //test is the bool property and isRunning is the bool role in MyModel
MouseArea{
anchors.fill: parent
onClicked: {
MyModel.setisRunning(index,boolFlag) //invert MyModel.isRunning
}
}
В MyModel Class у меня есть следующие связанные коды:
void MyModel::setisRunning(int itemIndex, bool isRunning)
{
mItem[itemIndex]->setRunningState(isRunning);
emit dataChanged(index(itemIndex,2), index(itemIndex,2),QVector<int>() << TimerRole);
}
и в классе MyItem у меня есть следующие связанные коды:
void MyItem::setRunningState(bool isRunning)
{
if(isRunning!=m_isRunning)
{
m_isRunning = isRunning;
}
}
Мне не удалось инвертировать состояние bool свойства test после изменения MyModel.isRunning, свойство test всегда показывало false, когда я его распечатывал.
Что меня больше всего смутило, так это выполнение TimerModel.setisRunning(index,boolFlag)
, MyModel.isRunning
может переключаться между true / false, но свойство test не может измениться соответственно
Я новичок в Qt, пожалуйста, помогите мне! Спасибо