Seite 1 von 1

Eingabe und Darstellung einer Zahl

Verfasst: Freitag 19. Dezember 2008, 21:11
von Ydope
Hallo,

Simples Ziel dieses Codes ist es, dass der User eine Zahl eingibt und dass diese während der Eingabe angezeigt wird. Ferner soll Backspace dabei normal nutzbar sein. Es soll beim Verlassen der Schleife (mittels Eingabe-Taste) in der Variable fsize eine Zahl zwischen 1 und 9999 stehen. Es wird pygame dafür genutzt.
Irgendwie sieht mir das viel zu umständlich aus, daher wollte ich fragen ob das auch viel einfacher machbar ist. Grund für Komplikationen ist u.a., dass fsize den Wert '' (= leerer String) hat, wenn man die ganze Eingabe "gebackspacet" hat. Und dass man das nicht einfach per int(fsize) zu 0 machen kann.

Code: Alles auswählen

while event.key != K_RETURN or fsize == 0:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key in (K_1,K_2,K_3,K_4,K_5,K_6,K_7,K_8,K_9,K_0):
                a = pygame.key.name(event.key)
                fsize = min(9999,fsize*10+int(a))
            elif event.key == K_BACKSPACE:
                if fsize > 0: 
                    fsize = str(fsize)[:-1]
                    if fsize: fsize = int(fsize)
                    else: fsize = 0
        draw_txt(str(fsize)) #Funktion, die sich um die Bildschirmausgabe kümmert
Dank und Gruß

Re: Eingabe und Darstellung einer Zahl

Verfasst: Freitag 19. Dezember 2008, 21:16
von DasIch
Ydope hat geschrieben:Grund für Komplikationen ist u.a., dass fsize den Wert '' (= leerer String) hat, wenn man die ganze Eingabe "gebackspacet" hat. Und dass man das nicht einfach per int(fsize) zu 0 machen kann.

Code: Alles auswählen

fsize = int(fsize) if fsize else 0
Wieso schneidest du eigentlich in der Zeile davor die Zahl überhaupt um eine Ziffer ab?

Verfasst: Freitag 19. Dezember 2008, 21:21
von Ydope
Danke.
Zu deiner Frage: Wenn man Backspace drückt, soll doch das letzte Zeichen entfernt werden.

PS: Oder meinst du man sollte einfach die ganze Eingabe wieder löschen? Das wäre wohl in der Tat einfacher, vorallem, da es nur kurze Zahlen sind.

Verfasst: Freitag 19. Dezember 2008, 21:26
von DasIch
Ydope hat geschrieben:Zu deiner Frage: Wenn man Backspace drückt, soll doch das letzte Zeichen entfernt werden.
Ups, dass hab ich wohl übersehen.