QListView -> SIGNAL itemRenamed

Alles rund um die Programmierung mit Qt
Antworten
atlastraeger
Beiträge: 32
Registriert: 11. August 2004 12:42

QListView -> SIGNAL itemRenamed

Beitrag von atlastraeger »

Hallo Forum!

Ich habe eine QListView LV_x mit zwei Spalten, die eine Aktion auslösen soll, sobald eines der Items in Spalte zwei durch den Benutzer geändert wurde.
Dafür dachte ich, könnte man das Signal itemRenamed(QListViewItem *) verwenden, das mit dem Slot vItemRenamed(QListViewItem *Item) connected ist.
Leider wird der entsprechende Slot nie aufgerufen. Verwende ich zu Testzwecken statt dem Signal itemRenamed(...) das Signal doubleClicked(...), wird der Slot aufgerufen, so dass ich sichergehen kann, dass das Signal itemRenamed(...) nicht zustande kommt.
Die zweite Spalte habe ich mit setRenameEnabled(1, true) zur Bearbeitung freigegeben.

Weiß jemand, warum mein Signal nicht aufgerufen wird?
Vielen Dank im Voraus!
gandalf
Beiträge: 39
Registriert: 31. August 2004 17:00
Wohnort: Varel
Kontaktdaten:

Beitrag von gandalf »

Hallo benutzt du wirklich

Code: Alles auswählen

emit itemRenamed ( QListViewItem *);
weil ich nur

Code: Alles auswählen

void itemRenamed ( QListViewItem * item, int col, const QString & text ) 
void itemRenamed ( QListViewItem * item, int col ) 
gefunden habe (zumindest in 3.3), wenn du das Signal nicht wie angegeben benutzt kann es ja nicht funktionieren

Gruß gandalf
benutzte QT 3.2 nc auf w2k
atlastraeger
Beiträge: 32
Registriert: 11. August 2004 12:42

Beitrag von atlastraeger »

So ganz verstehe ich das jetzt nicht. Ich habe folgenden Code benutzt:

Code: Alles auswählen

connect(LV_x, SIGNAL(itemRenamed(QListViewItem *)), this, SLOT(vItemRenamed(QListViewItem *)));
[\code]

-- ist das falsch?
gandalf
Beiträge: 39
Registriert: 31. August 2004 17:00
Wohnort: Varel
Kontaktdaten:

Beitrag von gandalf »

nun erlich gesagt ja
So ganz verstehe ich das jetzt nicht. Ich habe folgenden Code benutzt:
Code:

connect(LV_x, SIGNAL(itemRenamed(QListViewItem *)), this, SLOT(vItemRenamed(QListViewItem *)));
[\code]

-- ist das falsch?
in der doku steht halt

Code: Alles auswählen

void itemRenamed ( QListViewItem * item, int col, const QString & text ) 
void itemRenamed ( QListViewItem * item, int col ) 
das heißt du must

Code: Alles auswählen

connect(LV_x, SIGNAL(itemRenamed(QListViewItem *, int)), this, SLOT(vItemRenamed(QListViewItem *,int))); 
benutzen

ggf halt auch

Code: Alles auswählen

connect(LV_x, SIGNAL(itemRenamed(QListViewItem *, int, QString)), this, SLOT(vItemRenamed(QListViewItem *,int, QString))); 
Die Typen in den Signalen müssen alle übernommen werden, es gibt keine optionalen.
Und das Signal

Code: Alles auswählen

void itemRenamed ( QListViewItem * item)
hab ich in der Doku nirgens gefunden :-)

das heißt du must auch dein SLOT anpassen, da die Parameter von SIGNAL und SLOT immer gleich sein müssen

Gruß gandalf
benutzte QT 3.2 nc auf w2k
atlastraeger
Beiträge: 32
Registriert: 11. August 2004 12:42

Beitrag von atlastraeger »

ups..... ja, die Idee mit dem Slot anpassen ist nicht schlecht.... (schäm :-) .... Vielen Dank @ Gandalf!
Antworten