QTreeWidget Index ???

Verschiedenes zu Qt
Antworten
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

QTreeWidget Index ???

Beitrag von joschika77 »

Hallo!
Wie komme ich an den Index des Items auf das ich geklickt habe?

Code: Alles auswählen


connect(ui.myTreeWidget,SIGNAL(itemClicked(QTreeWidgetItem *, int)),this,SLOT(getIndex(QTreeWidgetItem *, int)));

void EMenu::getIndex(QTreeWidgetItem * item, int column)
{
	qDebug()<<"Index:"<<item->indexOfChild();//damit gehts nicht
}
Ich brauche zwingend den Index!
Hab schon einiges probiert.Hmm...
Wer kann mir da helfen?

MfG
Wer Wind sät wird Sturm ernten!
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

Code: Alles auswählen

void EMenu::getIndex(QTreeWidgetItem * item, int column) 
{
    // so :)
    QTreeWidgetItem *item1;
    qDebug() << "Index: " << item1->indexOfChild( item );
}  
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Wie? Gibt das nicht einen null Pointer?Woher soll das Item1 den Index wissen?

MfG
Wer Wind sät wird Sturm ernten!
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Gibt es keine Funktion beim QTreeWidget wo man den geklickten Index bekommt & ihn dann bspw. in ner switch auszuwerten?Wenn nicht, was für Alternativen hab ich in QT? :cry:

MfG
Wer Wind sät wird Sturm ernten!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Du kannst den Index eines TopLevelItems bekommen, den der Kinder nicht. Was für einen Index willst Du überhaupt? Das wievielte Item von oben angeklickt wurde, abhängig davon wie viele Items aufgeklappt sind? Das geht nicht. Einzige Möglichkeit wäre deinen Items einen Index mitzugeben, dann sind die aber konstant.

So lange Du also nicht schreibst was Du erreichen willst, kann man nur sagen "geht nicht".
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Hi macman!

Ich brauche den Index um dann z.B. in ner Switch(index) abzufangen welches neue Fenster aufgemacht werden soll.Könnte das ja auch mit text() abfangen, ist aber schlecht wenn das Prog z.B. mal in Englisch ausgeliefert werden soll, weist?Da ist der Index auf welches Item ich geklickt habe schon eindeutiger! Oder was meinst du
Du kannst den Index eines TopLevelItems bekommen.
Und die der dazugehörigen Childs nicht?

MfG
Wer Wind sät wird Sturm ernten!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Also willst Du nur deine Items anhand einer Nummer identifizieren. Dann guck Dir mal die Konstruktoren von QTreeWidgetItem an. Denen kannst Du einen Integer-Wert mitgeben, den Du später abfragen kannst. Der ändert sich auch nicht durch Sortierungen oder auf- und zuklappen.
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

connect(ui.myTreeWidget,SIGNAL(itemClicked(QTreeWidgetItem *, int)),this,SLOT(getIndex(QTreeWidgetItem *, int)));
Muß ich das im signal machen?Oder wie meinst das?

MfG
Wer Wind sät wird Sturm ernten!
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Ahh ih weiß wie du meinst, habe aber die Oberfläche mit dem UI Designer erstellt.Kann dort den Item nichts übergeben. Muß ich die Items dann manuell eintragen?

MfG
Wer Wind sät wird Sturm ernten!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ja, wirst Du wohl. Irgendwo sind dem Designer auch Grenzen gesetzt. Du kannst den Kram ja aus der ui_dialog.h kopieren, in den Konstruktor hinter das setupUi() packen und anpassen.
joschika77
Beiträge: 45
Registriert: 19. Mai 2006 10:36
Wohnort: an der Ostsee

Beitrag von joschika77 »

Jo hab ich schon gemacht.Klappt jetzt.Sehr schön.Danke Dir.
Wie du geschrieben hast, erst den Typ im Konstruktor mitübergeben und dann mit item->type() wieder auslesen.Wen es interessiert.

MfG
Wer Wind sät wird Sturm ernten!
Antworten