如何在我的QTreeview C++項目中爲所選Treeview項目設置複選框?爲所選QTreeview項目設置複選框
我的目標是遍歷所選的Treeview項目並將其複選框狀態設置爲true或false。我會通過一個righclick菜單來做到這一點。我只是不知道如何收集選定的項目。
我寫道,通過所有的項目循環,並設置相應的複選框以真或假的函數,但我在努力弄清楚如何只設置所選項目。
void ShotsEditor::checkAll()
{
for (int i = 0; i < d->sourceModel->rowCount(); i++){
QStandardItem* item = d->sourceModel->item(i);
if (item->isCheckable())
{
item->setCheckState(Qt::Checked);
}
else{
if (item->hasChildren())
{
for (int j = 0; j < item->rowCount(); j++){
QStandardItem* item1 = item->child(j);
if (item1->isCheckable())
{
item1->setCheckState(Qt::Checked);
}
}
}
}
}
}
這是我堅持......
void ShotsEditor::checkSelected()
{
QModelIndexList selected = d->treeView->selectionModel()->selectedIndexes();
qDebug() << "selected indexes" << selected;
foreach (QModelIndex index, selected)
{
if (index.column()==0)
{
int row = index.row();
qDebug() << "row" << row;
}
}
}
這是我怎麼會做它在pyside。我不知道該怎麼做,在C++
def set_checked(self):
indexes = self.treeview.selectedIndexes()
for i in indexes:
model = i.model()
item = i.model().itemFromIndex(i)
print i, model, item
if item.isSelectable():
item.setCheckState(QtCore.Qt.Checked)
你是什麼意思選擇,你能解釋我請。 – eyllanesc
@eyllanesc用更多的信息更新了這個問題 – JokerMartini
@JokerMartini你如何選擇它們? – Macias