Hallo Python-Forum,
wie kann ich in eine Endlosschleife eine Tastaturabfrage einbauen,
die, solange keine Eingabe gemacht wird, übersprungen wird?
raw_input wartet auf die Eingabe und ist für die Anwendung nicht geeignet,
gibt es andere Möglichkeiten?
Gruß Robin
Tastaturabfrage, die übersprungen wird
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Was hast du denn vor? Wenn du eine Eingabe brauchst, waehrend das eigentliche Programm weiterarbeitet, solltest du dich mal mit Threads befassen.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Mein Vorhaben:
Es werden zyklisch mehrere Geräte abgefragt. Bei einer Eingabe
sollte immer nur ein bestimmtes Gerät in der Schleife abgefragt werden.
Am besten Zahlenwert mit Enter eingeben können, ansonsten soll die Schleife laufen und alle Geräte abfragen
Kannst Du mir da etwas mehr auf die Sprünge helfen.
Bei PyGames gibt es auf Möglichkeiten, events abzufragen, aber das ist wohl
zu kompliziert.
Es werden zyklisch mehrere Geräte abgefragt. Bei einer Eingabe
sollte immer nur ein bestimmtes Gerät in der Schleife abgefragt werden.
Am besten Zahlenwert mit Enter eingeben können, ansonsten soll die Schleife laufen und alle Geräte abfragen
Kannst Du mir da etwas mehr auf die Sprünge helfen.
Bei PyGames gibt es auf Möglichkeiten, events abzufragen, aber das ist wohl
zu kompliziert.
Rebeccas Thread Vorschlag und der Code vom Schlangenbeschwörer aus dem Forum haben mich weitergebracht, darauf kann ich aufbauen. Hier der Code vom Schlangenbeschwörer. Danke!!!
Code: Alles auswählen
import Tkinter as tk
import time
import thread
def counter():
i = 1
while 1:
countvar.set(str(i))
i += 1
time.sleep(1)
root = tk.Tk()
countvar = tk.StringVar()
label = tk.Label(root, textvariable = countvar, font = ("Comic Sans MS", 20))
label.pack()
thread.start_new_thread(counter, ())
root.mainloop()
Zuletzt geändert von Robin am Mittwoch 29. August 2007, 13:26, insgesamt 1-mal geändert.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Robin!
Es wäre echt super, wenn du deinen Code in Code-Tags legen würdest. --> http://www.python-forum.de/faq.php#21
mfg
Gerold
Es wäre echt super, wenn du deinen Code in Code-Tags legen würdest. --> http://www.python-forum.de/faq.php#21
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Also so Gerold, sieht wirklich besser aus!
Code: Alles auswählen
import Tkinter as tk
import time
import thread
def counter():
i = 1
while 1:
countvar.set(str(i))
i += 1
time.sleep(1)
root = tk.Tk()
countvar = tk.StringVar()
label = tk.Label(root, textvariable = countvar, font = ("Comic Sans MS", 20))
label.pack()
thread.start_new_thread(counter, ())
root.mainloop()
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Und jetzt noch den vorherigen Post editieren und das auch dort in Code-Tags setzen.Robin hat geschrieben:Also so Gerold, sieht wirklich besser aus!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice