Ich versuche meine Implementierung von QAbstractTableModel zu testen. Ich habe die Methoden rowCount(), columnCount() und data() implementiert.Wie konstruiere ich einen QModelIndex mit gültigem Eltern?
Nach meinem Modell instanziiert wird, egal wie viele Verschachtelungen tief, der übergeordnete Index immer ungültig ist:
parent = model->index(0, 0);
i = model->index(0, 0, parent); // i.parent().IsValid() == false!
Jetzt i gültig ist. Aber i.parent() ist nicht. Auch wenn ich weiter Verschachtelung tun:
ancestor = model->index(0, 0);
parent = model->index(0, 0, ancestor);
i = model->index(0, 0, parent); // i.parent().IsValid() == false!
selbst dann, i ist gültig, aber i.parent() nicht.
Ich habe Unit die rowCount und columnCount Methoden getestet und ich habe festgestellt, dass das Modell ein Baummodell ist, das eine Zeile mit, verschachtelt, zwei Zeilen hat. Außerdem ist die Anzahl der Spalten ungleich Null.
Warum ist mein Elternindex immer ungültig?
Sind Sie sicher, dass Sie tatsächlich 'i's Eltern? – Dillydill123
Wenn Sie ein Baummodell erstellen möchten, müssen Sie von 'QAbstractItemModel' und nicht von' QAbstractTableModel' ableiten. – RobbieE