Seite 1 von 1

Line Edits leeren

Verfasst: Freitag 26. Februar 2021, 17:04
von -Passi-
Gibt es eine schönere Lösung als folgende:

Code: Alles auswählen

all_lineedits = [
            self.ui.lineEdit_accounts_edit_usage,
            self.ui.lineEdit_accounts_edit_pw,
            self.ui.lineEdit_accounts_edit_email,
            self.ui.lineEdit_accounts_edit_username,
            self.ui.lineEdit_accounts_edit_webadress,
            self.ui.lineEdit_accounts_edit_name,
            ...
        ]

        for lineedit in all_lineedits:
            lineedit.clear()
um alle Lineedits in der UI zu leeren?
Problem ist das bei einem Wechsel des Stackedwidgets die Inputfelder beschreiben bleiben, deshalb wollte ich eine Funktion haben die alle Felder leert. Es muss doch bestimmt irgendwie schöner gehen als so, da ich nicht alle Lineedits da auflisten möchte (Es sind einige).

Re: Line Edits leeren

Verfasst: Freitag 12. März 2021, 18:05
von Karsten Böhme
Hallo Passi,

hast Du es denn schon mal probiert ? Ich habe das grad mal mit ner str-List gemacht, das geht einwandfrei. Habe allerdings ne Type-Prüfung voran gesetzt.

Code: Alles auswählen

a = 'a'
b = 'b'
c = 'c'
lst = [a, b, c]

for x in lst:
    if type(x) == str:
        print(x.upper()
        
Output :
A
B
C

Re: Line Edits leeren

Verfasst: Freitag 12. März 2021, 21:27
von __blackjack__
@Karsten Böhme: Das ist doch im Grunde genau das was -Passi- bereits hat, nur mit einer unnötigen und ”falschen” Typprüfung. ”Falsch” weil man an der Stelle, wenn überhaupt, mit `isinstance()` prüfen würde, damit man auch von `str` abgeleitete Klassen, die ja auch die `upper()`-Methode haben, nicht ausschliessen würde. Aber da stellt sich dann natürlich die Frage welche Typen man denn da erwartet die keine Zeichenketten sind, und warum die zusammen mit Zeichenketten in einer Liste stecken.

Re: Line Edits leeren

Verfasst: Sonntag 14. März 2021, 11:28
von Karsten Böhme
@__blackjack__: ... wenn ich Ihre Kommentare lese, dann staune ich jedes mal, dass ich überhaupt etwas hinbekomme !