QListWidget currentItemChanged Abbrechen ...
Verfasst: 19. Februar 2010 20:12
Hallo zusammen,
ich habe folgendes Problem ...
Ich habe ein QListWidget indem mehre Items eingefügt werden können. Jedes Item verfügt über ein paar Parameter welche von User geändert werden können. Wenn der User Item-Parameter ändert und anschliessend ein anderes Item selektiert, erscheint ein Dialog, der den User auffordert sich zwischen 3. Aktionen zu entscheiden:
1. Änderungen übernehmen
2. Änderungen verwerfen
3. Aktion abbrechen.
Bei Punkt 3 liegt mein Problem. Ich nutzte das Signal: currentItemChanged(QListWidgetItem*,QListWidgetItem*).
Wenn sicher der User dafür entscheidet die Aktion abzubrechen versuch ich mein Glück mit folgenden Zeilen:
Der Effekt ist folgender. Das prev-Item hat eine gepunkteten Rahmen und ist intern auch noch selektiert.
Das Item zu welchem versucht wurde zu wechseln hat jedoch den blauen Focus, was es natürl. nicht haben soll.
ich vermute folgendes .... das prev-Item wird gemäß des codes selektiert, aber irgendwie wird die aktion die ausgelöst wurde auch beendet. kann ich dies irgendwie rückgängig machen?! ...
ein hilft da nicht weiter
ich hoff ich habe mich verständlich ausgedrückt und dass jemand rat für mich hat ...
viele Grüße Morph
ich habe folgendes Problem ...
Ich habe ein QListWidget indem mehre Items eingefügt werden können. Jedes Item verfügt über ein paar Parameter welche von User geändert werden können. Wenn der User Item-Parameter ändert und anschliessend ein anderes Item selektiert, erscheint ein Dialog, der den User auffordert sich zwischen 3. Aktionen zu entscheiden:
1. Änderungen übernehmen
2. Änderungen verwerfen
3. Aktion abbrechen.
Bei Punkt 3 liegt mein Problem. Ich nutzte das Signal: currentItemChanged(QListWidgetItem*,QListWidgetItem*).
Wenn sicher der User dafür entscheidet die Aktion abzubrechen versuch ich mein Glück mit folgenden Zeilen:
Code: Alles auswählen
selectedItemChanged(QListWidgetItem* current, QListWidgetItem* prev){
int index = ui->ListWidget->row(prev);
if ((index >= 0) && (updateItem(index) == -1)) { // User-Abbruch
ui->ListWidget->blockSignals(true);
ui->ListWidget->setCurrentItem(prev);
ui->ListWidget->setItemSelected(prev,true);
//current = prev
ui->ListWidget->blockSignals(false);
} else ...
}
Das Item zu welchem versucht wurde zu wechseln hat jedoch den blauen Focus, was es natürl. nicht haben soll.
ich vermute folgendes .... das prev-Item wird gemäß des codes selektiert, aber irgendwie wird die aktion die ausgelöst wurde auch beendet. kann ich dies irgendwie rückgängig machen?! ...
ein
Code: Alles auswählen
current = prev ich hoff ich habe mich verständlich ausgedrückt und dass jemand rat für mich hat ...
viele Grüße Morph