In QListWidget mit Pfeiltasten bewegen

Alles rund um die Programmierung mit Qt
Antworten
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

In QListWidget mit Pfeiltasten bewegen

Beitrag von reinki0013 »

Hallo zusammen,

ich habe ein QListWidget und darin befinden sich Einträge die mit einer Checkbox verbunden sind....

wenn ich auf einen eintrag klicke, mit der maus, dann wird die checkbox "angehackt" allerdings wenn ich mit den Pfeil "oben" und "unten" Tasten mich bewege, wird diese Checkbox nicht aktiviert...

Beispiel:
5 Einträge in der ListWidget und davon sind bei 3 Einträgen die Checkboxen aktiviert... Jetzt möchte ich gerne mit den Pfeil Tasten "oben" und "unten" ebenfalls sehen ob diese aktiviert sind...

mein signal-slot:

Code: Alles auswählen

connect(ui.ListWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(curItem(QListWidgetItem*)));
was muss ich ändern, damit ich mich mit den Pfeiltasten ebenfalls in der Checkbox sehe ob diese "angehackt" ist??

Lg Reinki
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Doku lesen hilft immer. Das ein itemClicked-Signal nicht per Tastatur ausgelöst wird, sollte klar sein. Welches Signal wird also von Tastatur und Maus ausgelöst? Vielleicht itemSelectionChanged?

Gibt es in Österreich eigentlich einen Unterschied zwischen Haken und hacken?
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

macman hat geschrieben:Doku lesen hilft immer. Das ein itemClicked-Signal nicht per Tastatur ausgelöst wird, sollte klar sein. Welches Signal wird also von Tastatur und Maus ausgelöst? Vielleicht itemSelectionChanged?

Gibt es in Österreich eigentlich einen Unterschied zwischen Haken und hacken?
Ja also das war mir klar...

Das mit itemSelectionChanged hab ich schon probiert, leider funktioniert es nicht...

Code: Alles auswählen

connect(ui.ListWidget, SIGNAL(itemSelectionChanged(QListWidgetItem*)), this, SLOT(curItem(QListWidgetItem*)));
Wenn ich das so teste, dann tut sich genau gar nichts...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Was soll denn passieren? Gibt der connect überhaupt true zurück?
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

macman hat geschrieben:Was soll denn passieren? Gibt der connect überhaupt true zurück?
Also der connect gibt nicht true zurück...

Er sollte ja in die Funktion

Code: Alles auswählen

curItem(QListWidgetItem *item)
springen, weil in dieser Funktion bekomme ich dann den Status der Checkbox zurück...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

reinki0013 hat geschrieben:Also der connect gibt nicht true zurück...
Na dann guck mal in die Debugkonsole. Da steht bestimmt sowas wie 'No such slot'.
reinki0013 hat geschrieben:Er sollte ja in die Funktion

Code: Alles auswählen

curItem(QListWidgetItem *item)
springen, weil in dieser Funktion bekomme ich dann den Status der Checkbox zurück...
Ohne connection kein Funktionsaufruf. Das ist immer das erste was man prüfen sollte, ob eine connection überhaupt zustande gekommen ist.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

ja gut und wie soll ich jetzt weiter vorgehen??

und in meiner debugkonsole steht nirgends "No such slot"...

hat jemand einen tipp für mich...
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Mein Fehler, in der Konsole wird 'No such signal stehen'. itemSelectionChanged hat nämlich keinen Parameter. Ist mir auch jetzt erst aufgefallen.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

macman hat geschrieben:Mein Fehler, in der Konsole wird 'No such signal stehen'. itemSelectionChanged hat nämlich keinen Parameter. Ist mir auch jetzt erst aufgefallen.
ja und genau das war das problem...

also ich habe es so gelöst:

und zwar hatte ich eine Funktion

Code: Alles auswählen

curItem(QListWidgetItem*)
und die habe ich nun überladen

Code: Alles auswählen

curItem()
und mit dem SIGNAL verbunden und siehe da, es funktioniert...

so sieht dieses connect jetzt aus:

Code: Alles auswählen

connect(ui.ListWidget, SIGNAL(itemSelectionChanged()), this, SLOT(curItem()));
das Problem war nämlich, das itemSelectionChanged keinen Parameter übernimmt...

Lg Reinki
Antworten