Ich habe versucht, einen einfachen ganzzahligen Zeichenrechner mit tkinter zu erstellen. Es hat eine Klasse mit zwei verschiedenen Funktionen. Die zweite Funktion soll ausgelöst werden, wenn der Benutzer die "Enter" -Taste drückt. Wenn ich den Code ausführe, erscheint das Fenster genau so, wie es soll. Aber wenn ich "Enter" tippe und drücke, läuft die zweite Funktion nicht und aktualisiert das Etikett nicht. Ich möchte, dass es aktualisiert entweder als "Diese Nummer ist positiv.", "Diese Zahl ist 0." oder "Diese Zahl ist negativ." Stattdessen bleibt es leer.Tkinter-Rechner kann Etikett nicht aktualisieren
Ich bezweifle, dass es relevant ist, aber ich habe dieses Programm in PyCharm Community Edition 5.0.4 gemacht, und ich verwende Python 3.5 (32-Bit).
import tkinter
class IntegerSign:
def __init__(self):
self.window = tkinter.Tk()
self.window.title("Integer Sign Calculator")
self.window.geometry("300x150")
self.number_frame = tkinter.Frame(self.window)
self.solution_frame = tkinter.Frame(self.window)
self.button_frame = tkinter.Frame(self.window)
self.number_label = tkinter.Label(self.number_frame, text="Enter an integer:")
self.number_entry = tkinter.Entry(self.number_frame, width=10)
self.number_label.pack(side='left')
self.number_entry.pack(side='left')
self.statement = tkinter.StringVar()
self.solution_label = tkinter.Label(self.solution_frame, textvariable=self.statement)
self.statement = tkinter.Label(self.solution_frame, textvariable=self.statement)
self.solution_label.pack(side='left')
self.calc_button = tkinter.Button(self.button_frame, text='Enter', command=self.calc_answer)
self.quit_button = tkinter.Button(self.button_frame, text='Quit', command=self.window.destroy)
self.calc_button.pack(side='left')
self.quit_button.pack(side='left')
self.number_frame.pack()
self.solution_frame.pack()
self.button_frame.pack()
tkinter.mainloop()
def calc_answer(self):
self.number = int(self.number_entry.get())
self.statement = tkinter.StringVar()
if self.number > 0:
self.statement = "This number is positive."
elif self.number == 0:
self.statement = "This number is 0."
else:
self.statement = "This number is negative."
IntegerSign()
Danke. Jetzt funktioniert es. –
Gut. Bitte akzeptiere die Antwort. –