I have a Function in a class. This Function creates an input box as well as a button using tkinter. When the Button is pushed, I want to save the input of the input box in a Variable called “Platzhalter”. My Annotations are in German so I hope that`s not a Problem.
class SchätzFrage:
#hier werden einige Variablen und Listen erstellt, die innerhalb der Klasse in mehreren Funktionen aufgerufen werden
def __init__(self, root, NamensListe):
self.root = root
self.Fragestellung = ""
self.Antwort = ""
self.Erklärung = ""
self.Runde = 1
self.AntwortListe = [""] * 2
self.NamensListe = NamensListe
self.PlatzHalter = ""
def Auswählen(self): #Diese Funktion wird bei einem Unentschieden Aufgerufen, sie wählt die Schätzfrage zufällig aus
FragenAuswahl = FragenKatalog.get("Schätzfrage", []) #Hier werden die Fragen aus der Kategorie "Schätzfrage" in eine Liste gespeichert "FragenAuswahl",
AusgewaehlteFrage = random.choice(FragenAuswahl) #aus der dann eine zufällige Frage ausgewählt wird
#Hier werden Fragestellung, richtige Antwort und Erklärung aus dem Wörterbuch AusgewaehlteFrage in jeweils eigene Variablen abgespeichert
self.Fragestellung = AusgewaehlteFrage["Frage"]
self.Antwort = AusgewaehlteFrage["Antwort"]
self.Erklärung = AusgewaehlteFrage["Erklärung"]
self.BenutzerOberfläche() #ruft die Funktion Benutzeroberfläche innerhalb der Klasse Self auf
def BenutzerOberfläche(self): #erzeugt die Benutzeroberfläche der Schätzfrage
#alle vorherigen widgets werden gelöscht
for widget in self.root.winfo_children():
widget.destroy()
#ein Label mit der Fragestellung wird erstellt
FragestellungLabel = tk.Label(self.root, text=self.Fragestellung)
FragestellungLabel.pack(pady=10)
#dieses Label gibt an, welcher Spieler am Zug ist
SpielerAmZugLabel = tk.Label(self.root, text="%s gib deine Antwort ein!" % self.NamensListe[self.Runde %2])
SpielerAmZugLabel.pack(pady=10)
#Eingabefeld für die Antwort
self.AntwortEingabe = tk.Entry(self.root)
self.AntwortEingabe.pack(pady=5)
#Knopf zum Bestätigen der eigenen Antwort
BestätigungsKnopf = tk.Button(self.root, text="Antwort bestätigen", command=self.AntwortBestätigen)
BestätigungsKnopf.pack(pady=20)
def AntwortBestätigen(self):
#print("hi")
self.PlatzHalter = self.AntwortEingabe.get() #speichert die eingegebene Antwort zwischen
print(self.PlatzHalter)
New contributor
Janis is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.