Python: Input() grafisch nutzen?
Hallo! Ich habe mich in Python selbst ein wenig reingefuchst und habe ein recht komplexes Programm geschrieben. Ich mag es, es war nur ein bisschen umständlich zu bedienen. Also habe ich mir die grafische Programmierung angeeignet, um das Programm umzuschreiben.
Ich wollte aber ein paar alte Elemente übernehmen, stehe aber vor dem Problem, dass ich nicht weiß, wie ich "Input()" grafisch nutzen kann.
Mit einer Eingabezeile und einem Button schlug es bisher fehl, weil das Programm nicht auf den Nutzer warten konnte und hat direkt weiter gerechnet..
Kann mir jemand helfen, wie ich "Input()" grafisch nutzen kann?
1 Antwort
Die input-Funktion ist ausschließlich für die Texteingabe (und z.T. -ausgabe) in der Konsole gedacht. Wenn du mit einer grafischen Oberfläche (mit Buttons, etc.) arbeiten möchtest, solltest du auch an der Stelle mit entsprechenden Komponenten arbeiten.
Seitens tkinter gibt es für Nutzereingaben das Entry-Widget.
Beispiel:
import tkinter as tk
def show_input():
output_field.configure(text = input_field.get())
root = tk.Tk()
input_field = tk.Entry(root)
input_field.pack()
output_field = tk.Label(root, text="")
output_field.pack()
tk.Button(root, text="Show text", command=show_input).pack()
root.mainloop()
In diesem Beispiel wird bei Buttonklick das Eingabefeld ausgelesen und dessen Text in einem Label ausgegeben.
Alternativ kann man das Label auch an eine StringVar binden:
text = tk.StringVar()
output_field = tk.Label(root, textvariable=text)
// change:
text.set(input_field.get())
Bei Änderung dessen Wertes wird aktualisiert sich das Label automatisch.
Auch andere GUI-Toolkits (kivy, PyQt, u.ä.) verfügen über eigene Komponenten für Ein- und Ausgabe.
Vielen Dank! :D
Ich sehe zumindest den ersten Fehler, den ich gemacht habe. xD
Ich probiere es mal aus. 😇