Seite 1 von 1

[gelöst]Signal itemClicked() wird nicht akzeptiert

Verfasst: 20. Februar 2015 11:57
von qtNiko
hi,

wenn in meinem Programm auf ein Item in einem QTableWidget, tableW_logtype, geklickt wird, soll eine Reaktion erfolgen. Dazu habe ich das Signal itemClicked ( QTableWidgetItem * item ) mit einem Slot verbunden:

Code: Alles auswählen

connect (uidg.tableW_logtype, SIGNAL(itemClicked ( QTableWidgetItem)), this, SLOT(item_to_actidx(QTableWidgetItem)));
Der Code wird compiliert, aber beim Start des Programms erhalte ich die Meldung
Object::connect: No such signal QTableWidget::itemClicked ( QTableWidgetItem) in ...
Das Signal wird im QtAssistant genauso als Signal von QTableWidget beschrieben.

Was ist also falsch?

Re: Signal itemClicked() wird nicht akzeptiert

Verfasst: 20. Februar 2015 16:23
von Christian81
Nein, wird es nicht:
void QTableWidget::itemClicked ( QTableWidgetItem * item ) [signal]

Re: Signal itemClicked() wird nicht akzeptiert

Verfasst: 20. Februar 2015 18:33
von qtNiko
Hmm,
Nein, wird es nicht:

void QTableWidget::itemClicked ( QTableWidgetItem * item ) [signal]
mit der Antwort kann ich leider nichts anfangen.

Das Signal
void QTableWidget::cellClicked ( int row, int column ) [signal]
funktioniert. Es findet sich genauso in der Liste der Signale wie itemClicked().
Aber cellClicked() wird nicht nur compiliert, sondern beim Programmstart kommt keine Fehlermeldung der Art "... no such signal" und beim Mouseklick wird die zugeordnete Slot-function aufgerufen .

Damit habe ich zwar eine Lösung für meine Programmfunktionalität, aber ich verstehe immer noch nicht, warum das Signal itemClicked() nicht akzeptiert wird.

Re: Signal itemClicked() wird nicht akzeptiert

Verfasst: 20. Februar 2015 20:39
von Christian81
Weil ein Objekt und ein Pointer auf ein Objekt zwei unterschiedliche Dinge sind ...

Re: [gelöst]Signal itemClicked() wird nicht akzeptiert

Verfasst: 20. Februar 2015 22:54
von qtNiko
Jetzt hat es geklickt - bei mir :)
Den Unterschied macht das kleine Sternchen!

Danke für den Hinweis. Auch wenn ich inzwischen eine andere Lösung gefunden habe, ist es gut zu wissen, was man falsch gemacht hatte.