Python: Input() grafisch nutzen?

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.


Talbor 
Beitragsersteller
 05.06.2024, 08:12

Vielen Dank! :D

Ich sehe zumindest den ersten Fehler, den ich gemacht habe. xD

Ich probiere es mal aus. 😇

0