Das QListWidgetItem hat soviel ich gesehen hab keine Events!
QListWidget keyPressEvent
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
QListWidget keyPressEvent
Ich will aus einem QListWidget per DELETE ein Eintrag löschen und implementiere daher die Methode keyPressEvent. Wenn ich in dem ListWidget nicht auf einen Eintrag klicke sondern sonst wohin und dann DELETE wird das Event ausgelöst. Ich muss zweimal langsam auf ein Eintrag klicken und dann DELETE um das Event auszulösen; einmal auf den Eintrag klicken reicht nicht aus.
Das QListWidgetItem hat soviel ich gesehen hab keine Events!

Das QListWidgetItem hat soviel ich gesehen hab keine Events!
Re: QListWidget keyPressEvent
Ich versteh nicht ganz.
Das ist doch korrekt so.the_immortal hat geschrieben:Wenn ich in dem ListWidget nicht auf einen Eintrag klicke sondern sonst wohin und dann DELETE wird das Event ausgelöst.
Häh? Was hat denn das klicken mit keyPressEvent zu tun? Im keyPressEvent guckst Du erstmal ob die richtige Taste gedrückt wurde. Dann guckst Du ob Items selektiert sind und dann werden die gelöscht. Im folgenden Beispiel ist es zwar ein QTreeWidget, aber das sollte keine Rolle spielen. OnDelete ist ein Slot, der mir die Items löscht, da man das ja meist auch per Button erledigen kann.the_immortal hat geschrieben:Ich muss zweimal langsam auf ein Eintrag klicken und dann DELETE um das Event auszulösen; einmal auf den Eintrag klicken reicht nicht aus.
Code: Alles auswählen
void Dialog::keyPressEvent(QKeyEvent* event)
{
if (event->key() != Qt::Key_Delete)
{
QDialog::keyPressEvent(event);
return;
}
QTreeWidgetItem* item = NULL;
QList<QTreeWidgetItem*> items = treeWidget->selectedItems();
if (items.count()>0)
OnDelete();
}
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Ich habe es jetzt mal mit der KeyPress Methode vom Parent-Widget versucht, sollte wohl so ca. deinem Dialog entsprechen. Geändert hat sich jedoch nichts. Das ListWidget scheint bei einmaligem klicken auf ein Item den fokus zu verlieren.macman hat geschrieben:Ok, deshalb überschreibe ich auch immer keyPressEvent vom Dialog und nicht vom ListWidget
-
the_immortal
- Beiträge: 39
- Registriert: 31. Mai 2006 21:21
- Wohnort: CH
Wenn ich im MousePressEvent des ListWidgets mit:
fokusiere funktioniert es!
Code: Alles auswählen
setFocus();-
joschika77
- Beiträge: 45
- Registriert: 19. Mai 2006 10:36
- Wohnort: an der Ostsee
-
joschika77
- Beiträge: 45
- Registriert: 19. Mai 2006 10:36
- Wohnort: an der Ostsee