connect mit custom QTreeWidgetItem

Alles rund um die Programmierung mit Qt
Antworten
dead-raven
Beiträge: 23
Registriert: 18. Dezember 2008 23:20

connect mit custom QTreeWidgetItem

Beitrag von dead-raven »

Hallo,

ich habe eine von QTreeWidgetItem abgeleitete Klasse namens TreeWidgetMenuItem. Dieses Item wurde an den Baum angefügt.
Wenn das Item nun angeklickt wird, so soll ein entsprechender Slot aufgerufen werden und diesem das TreeWidgetMenuItem übergeben werden.
Das Problem ist, dass der Parameter des entsprechenden Signals vom Typ QTreeWidgetItem ist:

Code: Alles auswählen

connect(menuTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(changePage(QTreeWidgetItem*,int)));
Nun habe ich es folgendermaßen gelöst, was mir allerdings nicht besonders gefällt:
ich übergebe TreeWidgetMenuItem als QTreeWidgetItem und wandel es in der Slot-Prozedur wieder in ein TreeWidgetMenuItem um, um die entsprechenden Klassenmethoden verwenden zu können:

Code: Alles auswählen

void MainWindow::changePage(QTreeWidgetItem *item, int column){
    Q_UNUSED(column);
    TreeWidgetMenuItem *menuItem = static_cast<TreeWidgetMenuItem*>(item);
    qDebug() << menuItem->getItemName();
}
Gibt es einen anderen / eleganteren Lösungsweg?

gruß
DeaD-RaveN
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

ich würde dynamic_cast bzw. qobject_cast bevorzugen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten