QListWidget currentItemChanged Abbrechen ...

Alles rund um die Programmierung mit Qt
Antworten
Morph
Beiträge: 6
Registriert: 4. Februar 2010 12:21

QListWidget currentItemChanged Abbrechen ...

Beitrag von Morph »

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:

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 ...
}
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

Code: Alles auswählen

 current = prev 
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
Antworten