mein Code funktioniert auch soweit. Folgende Situation. Ich habe mit dem QT Designer eine *.ui-Datei erstellt auf denen sind zwei Buttons (pushButtonLogIn und pushButtonClose) und dazu zwei Textfelder (lineEditNickname und lineEditPassword). Das Ganze wird also wie ein kleines LogIn-Fenster aufgezogen. Allgemein wollte ich nun folgendes erreichen: Wenn der Anwender im Benutzer-Feld seinen Benutzernamen eingibt, aber das Passwort-Feld ist noch leer, so soll der LogIn-Button deaktiviert bleiben. Gibt der Anwender nun sein Passwort in das entsprechende vorgesehene Feld ein, soll überprüft werden, dass der Benutzername auch eingeben wurde, erst dann soll der LogIn-Button aktiviert werden.
Folgende Randsituation wollte ich auch vermeiden: Anwender gibt zuerst das Passwort in das vorgesehene Feld ein, und will später dann den Benutzernamen eingeben. Also die umgekehrte Reihenfolge. Dann soll geprüft werden, ob die Benutzer-Feld gefüllt ist, wenn nicht, dann soll der LogIn-Button weiterhin deaktiviert bleiben. Logisch, denn ohne Benutzername keinen Login

Und raus gekommen ist diese Funktion.
Code: Alles auswählen
def check_inputs(self):
#-------------------------------------------------------------------------------
sender = self.sender()
validator = sender.validator()
state = validator.validate(sender.text(), 0)[0]
#-------------------------------------------------------------------------------
if state == QValidator.Acceptable:
#-------------------------------------------------------------------------------
if self.lineEditNickname.text() == "":
self.ui_pp_login.pushButtonLogIn.setEnabled(False)
else:
self.ui_pp_login.pushButtonLogIn.setEnabled(True)
#-------------------------------------------------------------------------------
if self.lineEditPassword.text() == "":
self.ui_pp_login.pushButtonLogIn.setEnabled(False)
else:
#-------------------------------------------------------------------------------
if self.ui_pp_login.lineEditNickname.text() == "":
self.ui_pp_login.pushButtonLogIn.setEnabled(False)
else:
self.ui_pp_login.pushButtonLogIn.setEnabled(True)
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
color = '#c4df9b' # green
self.ui_pp_login.lineEditPassword.setEnabled(True)
#-------------------------------------------------------------------------------
elif state == QValidator.Intermediate:
color = '#fff79a' # yellow
self.ui_pp_login.pushButtonLogIn.setEnabled(False)
else:
color = '#f6989d' # red
sender.setStyleSheet('QLineEdit { background-color: %s }' % color)