QTreeWidget -> Item Index von TopLevelItem und Child

Verschiedenes zu Qt
Antworten
nico123
Beiträge: 16
Registriert: 24. September 2007 08:29

QTreeWidget -> Item Index von TopLevelItem und Child

Beitrag von nico123 »

Hallo,
ich habe ein QTree Widget mit folgendem aufbau:

+ Root1
|----Child1
|----Child2
|----Child3
+ Root2
|-----Child1
|-----Child2
+ Root3

usw...

Ich möchte jetzt wenn ein Root oder Child gewählt wird, dessen Index bekommen. Für die Roots ists ja nicht das Problem:

Code: Alles auswählen

 tree->indexOfTopLevelItem(current);
Ach, das ganze wird mit folgendem Signal verknüpft und steckt in dieser Funktion:

Code: Alles auswählen

connect(tree, SIGNAL(currentItemChanged( QTreeWidgetItem *,  QTreeWidgetItem *)), this, SLOT(changePage(QTreeWidgetItem *, QTreeWidgetItem*)));

/**********************************************************/

int RootIndexOfTree;
void MainWindowImpl::changePage(QTreeWidgetItem * current, QTreeWidgetItem* previous) {     
	RootIndexOfTree = tree->indexOfTopLevelItem(current));
} 
Also ich komme da einfach nicht so richtig weiter? Hat vllt. jemand von euch eine Idee, Tipp oder Lösungsansatz für mich? Wäre echt seht dankbar.

Schöne Grüße und vielen Dank,
Nico
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

invisibleRootItem

Beitrag von Exasperation »

Da ich nur eine kurze Frage habe, möchte ich keinen extra Thread erstellen. Meine Frage bezieht sich auf das unsichtbare root Item, an dem der Rest des tree widgets aufgehängt ist... Wird ein solches Item automatisch erstellt? Als existiert das automatisch sobald ich meinem QTreeWidgets topLevelItems hinzufüge? Oder muss ich das manuell erstellen?

Die Sache ist die, dass ich eine Funktion, die durch mein QTreeWidget durchläuft, rekursiv aufrufen möchte und das geht nur wenn ich universell alle items über parent->child anspreche. Gibt es also schon ein unsichtbares parent für die topLevelItems oder muss ich selber ein root item erstellen, dass den restlichen Baum beinhaltet und das ich dann ausblende?
nebler
Beiträge: 51
Registriert: 9. Juli 2009 15:26

Beitrag von nebler »

Ich hab zZ viel mit QTreeWidget gemacht bzw. mit QTreeWidgetItem.

Dein unsichtbares Element gibts nicht ^^.

1 TopLevelElement == 1 Wurzelknoten

Wenn current->parent() == 0 dann ist der aktuelle Knoten ein Wurzelknoten und somit ein topLevelItem.

Davon geh ich aus und bis jetzt stimmen meine Algorithmen mit der Annahme :-)
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Ja oke danke ^^ Wollt nur sicher gehn dass ich das zusätzliche topLevelItem umsonst mache ;)
Antworten