Hej, mam pewien problem. Otóż posiadam QTreeView dla której piszę model:
void ListDialog::setModel()
{
QStandardItemModel* model = new QStandardItemModel();
QStandardItem *zwierzeta = new QStandardItem("Zwierzeta");
model->appendRow(zwierzeta);
for(int i = 0; i<10; i++) {
QStandardItem *item = new QStandardItem(netlist.at(i));
item->setFlags(item->flags() & ~Qt::ItemIsEditable);
zwierzeta->appendRow(item);
}
QStandardItem *szkola = new QStandardItem(QString::fromLocal8Bit("Szkoła"));
model->appendRow(szkola);
for(int i = 10; i<28; i++) {
QStandardItem *item2 = new QStandardItem(netlist.at(i));
item2->setFlags(item2->flags() & ~Qt::ItemIsEditable);
szkola->appendRow(item2);
}
ui->treeView->setModel(model);
}
netlist jest typu QStringList;
Otóż jeśli następnie chcę uzyskać indeks bieżącego wiersza jako int:
QModelIndex index = ui->treeView->currentIndex();
int row = index.row();
sprawa się sypie. Bo np. pierwszy element z kategorii szkoła ma indeks 0, a nie 10. Wiecie jak temu zaradzić?