ich habe mal eine Frage zum Hinzufügen einer Methode zu einem Qt-Control (im speziellen Fall QComboBox). Über das Event currentTextChanged wird der 'per Hand' eingegebene Text mit den Items der Combobox verglichen. Gibt es für den eingegeben Text keine Entsprechung in der Items-Liste, wird die Textfarbe auf rotgesetzt. Hier die derzeitige Implementierung (vereinfacht) :
Code: Alles auswählen
def __init__(self):
.
.
setattr(self.cbx_from, "all_items", lambda: [self.cbx_from.itemText(i) for i in range(self.cbx_from.count())])
self.cbx_from.currentTextChanged.connect(self.on_cbx_from_text_changed)
def on_cbx_from_text_changed(self, current_text: str):
# if current_text not in cbx_items:
if current_text not in self.cbx_from.all_items():
self.cbx_from.setStyleSheet("color: rgb(255,0,0)")
else:
self.cbx_from.setStyleSheet("")
Kann ich die Funktion 'all_items' auch einmalig der Klasse QComboBox hinzufügen, so dass sie dann bei jeder Instanz zur Verfügung steht ? Habe da noch nichts Passendes gefunden.
Vielen Dank für Eure Tipps !
Grüße
Karsten Böhme