0
我正在與this code一起工作,我正在嘗試獲取行數或所選項目是否有孩子。但我得到一個奇怪的行爲。獲取itemDelegate中的當前索引模型
我加入了一個代碼到QML:
itemDelegate: Item {
CheckBox {
id: checkbox
text: styleData.value.text
checked:false
visible: styleData.value === undefined ? false : true
onClicked: {
theModel.print(styleData.row, styleData.column,
theModel.index)
theModel.print(styleData.row, styleData.column,
theModel.index(styleData.row,
styleData.column,
theModel.currentIndex))
}
}
}
我的模型(treemodel.cpp)具有以下方法:
bool TreeModel::print(int row, int column, const QModelIndex &modelIndex)
{
createIndex(row, column, 1);
qDebug() << Q_FUNC_INFO
<< " row: " << row
<< " column: " << column
<< " rowCount (a): " << this->rowCount(index(row, column, modelIndex))
<< " rowCount (b): " << this->rowCount(modelIndex)
<< " hasChildren (a): " << this->hasChildren(index(row, column, modelIndex))
<< " hasChildren (b): " << this->hasChildren(modelIndex);
return true;
}
當我點擊複選框,有時數的行是正確的,但大部分時間都是錯誤的。即rowCount
當我點擊沒有孩子的行時沒有返回0,或當我們只有4個孩子時沒有返回6。
rowCount
工作正常。當我們使用箭頭擴展樹時,它總是返回正確的值,所以我想問題是我如何將索引傳遞給print
方法。
如果'theModel'是'TreeModel'的'theModel.index'和'theModel.currentIndex'不存在。你所擁有的只是一個'TreeModel :: index()',但它不暴露給QML。 –