Wert in TopLevelItem ändern

Alles rund um die Programmierung mit Qt
Antworten
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Wert in TopLevelItem ändern

Beitrag von toem »

Ich muss nochmal ne Frage loswerden.

Ich habe ein QTreeWidget in dem zur Laufzeit Daten hinzugefügt werden. Wie kann ich nun ebenfalls zu Laufzeit auf einzelne TopLevelItems zugreifen und darin einen Wert ändern?

Ich arbeite hierbei bislang nicht mit ModelIndex.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Ich wette in der Doku gibts ne Beschreibung zu ner Methode die auf TopLevel Items zugreift via einen ModelIndex oder?
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

Ich hatte das bislang so versucht. Ohne diesen ModelIndex. Ich dachte das müsste auch ohne funktionieren.

Code: Alles auswählen

int row = ui->treeWidget_DownLoaded->topLevelItemCount();
    QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget_DownLoaded->topLevelItem(row));
    item->setText(0, "Kotz");
    item->setText(5, "test");
    ui->treeWidget_DownLoaded->setCurrentItem(item, row);
Leider wird aber bei diesem Code nichts im TreeWidget verändert. Ist der Ansatz so total falsch?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Dir ist schon klar das du damit ein Item erstellst...

QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget_DownLoaded->topLevelItem(row));

Das brauchst du doch gar nicht....
du brauhst den Index deines Items und dann holst du dir das Item.... was du da gerade machst is nen Item zu erstellen was genauso aus sieht wie das was du bearbeiten willst, es aber gar nicht ist ;-)

Was hälst denn hiervon?
QTreeWidgetItem * QTreeWidget::topLevelItem ( int index ) const
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

Mann, ich bin so zugedröhnt mit Grippemitteln, ich kapier heut gar nichts mehr.
Kannst Du mir das bitte noch etwas näher erklären? Ich versuch dann in der Hilfe was zu finden.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

mit new erzeugst du dir ein neues Item (weiss nicht genau was das in demFall ist was er dir zurückliefert aber ich geh davon aus das es nur eine Kopie ist)
Du brauchst aber das OrginalItem bzw den Ptr darauf.
Den bekommst du mit

Code: Alles auswählen

QTreeWidgetItem * QTreeWidget::topLevelItem ( int index ) const
Index is der den du willst...also welches Item.
Dann hast du den Ptr auf das Item das du bearbeiten möchtest.

also QTreeWidgetItem *item2Change = m_ui->deinTreeWidget->topLevelItem ( int index );
item2Change->setText ( 0, "Bla" );
toem
Beiträge: 124
Registriert: 17. März 2009 14:01

Beitrag von toem »

super, danke
das klappt hervorragend
Antworten