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