2 listWidgets mit der ENTF Taste

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Ernie1412
User
Beiträge: 161
Registriert: Freitag 10. Januar 2020, 20:38

ich habe folgendes:

Code: Alles auswählen

def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Delete:
            current_item = self.lstWdg_Darsteller.currentItem()
            if current_item is not None and current_item.isSelected():
                self.lstWdg_Darsteller.takeItem(self.lstWdg_Darsteller.currentRow())       
            current_item = self.lstWdg_Darstellerin.currentItem()
            if current_item is not None and current_item.isSelected():
                self.lstWdg_Darstellerin.takeItem(self.lstWdg_Darstellerin.currentRow())
aus dem Darstellerin Widget löscht er ein Item
bei Darsteller Widget löscht er aus beiden das letzte Item
wieso und wie kriege ich es hin das er jeweils aus dem Selected Widget das Item löscht ?
Danke !
Benutzeravatar
Axel-WAK
User
Beiträge: 62
Registriert: Dienstag 29. November 2022, 11:52

Eine Zeile kann ja markiert sein auch wenn der Fokus auf einem Widget ist.

Eventuell mal den Fokus checken, etwa so

Code: Alles auswählen

def keyPressEvent(self, event):
    if event.key() == QtCore.Qt.Key_Delete:
        if self.lstWdg_Darsteller.hasFocus():
            current_item = self.lstWdg_Darsteller.currentItem()
            if current_item is not None and current_item.isSelected():
                self.lstWdg_Darsteller.takeItem(self.lstWdg_Darsteller.currentRow())   
        if self.lstWdg_Darstellerin.hasFocus():
            current_item = self.lstWdg_Darstellerin.currentItem()
            if current_item is not None and current_item.isSelected():
                self.lstWdg_Darstellerin.takeItem(self.lstWdg_Darstellerin.currentRow())
OS: LMDE5 *** Homepage *** Github Seite
Ernie1412
User
Beiträge: 161
Registriert: Freitag 10. Januar 2020, 20:38

Danke Axel, hatte es mit Hilfe von chatgpt auch gefunden. Allerdings nach vielen fragen erst. Genau das hasFocus hatte mir gefehlt. Alle Befehle kenne ich ja auch nicht
Antworten