Графично приложение Суматор за числа - Programming Basics with Python
Здравейте! Решавам задачите от книгата на Наков и се затрудних на примера за суматора за числа от първа глава, а именно не ми се визуализират number entry-тата както и знаците.
https://ibb.co/cTfKKcS
Знам че целата на задачата е просто да ни "запали" по програмирането и да ни покаже какво бихме могли да правим, но въпреки това ми е любопитно защо се получава така. В линка е кода, който съм написал.
При мен всичко си излезе нормално, като изключим, че програмата не извършва никакви изчисления при натискане на бутона "Calculate". //Полето за резултат си остава с надписа "Result..."
Качвам кода, дано ви свърши работа!
П.с: ако откриете грешката ми, ще се радвам да ме известите!
import tkinter as tk class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): # create widgets self.firstNumberEntry = tk.Entry() self.plusSign = tk.Label(text="+") self.secondNumberEntry = tk.Entry() self.equalSign = tk.Label(text="=") self.resultLabel = tk.Label(text="Result...", bg="green", fg="white") self.calculateButton = tk.Button(text="Calculate") # place widgets self.firstNumberEntry.pack(side="left") self.plusSign.pack(side="left") self.secondNumberEntry.pack(side="left") self.equalSign.pack(side="left") self.resultLabel.pack(side="left") self.calculateButton.pack(side="left") def calculate(self): first_value = float(self.firstNumberEntry.get()) second_value = float(self.secondNumberEntry.get()) result = first_value + second_value self.resultLabel.config(text=str(result), bg="green", fg="white") # create the application app = Application() app.master.title("Sumator") app.master.minsize(width=100, height=50) # start the program app.mainloop()Здравейте, оправих програмката ! :) Проблема е, че calculateButton не правеше нищо, тоест не беше свързан с def calculate. Ето линк към оправената програма: https://pastebin.com/BcTbwyw0
Здравейте, след доста опити ето така се справих аз. :)
import tkinter as tk class Application(tk.Frame) : def __init__(self, master=None): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): #create widgets self.firstNumberEntry = tk.Entry() self.plusSign = tk.Label(text="+") self.secondNumberEntry = tk.Entry() self.equalSign = tk.Label(text="=") self.resultLabel = tk.Label(text="Result...", bg="green", fg="white") self.calculateButton = tk.Button(text="Calculate", command=self.calculate) # place widgets self.firstNumberEntry.pack(side="left") self.plusSign.pack(side="left") self.secondNumberEntry.pack(side="left") self.equalSign.pack(side="left") self.resultLabel.pack(side="left") self.calculateButton.pack(side="left") def calculate(self): try: first_value = float(self.firstNumberEntry.get()) second_value = float(self.secondNumberEntry.get()) result = first_value + second_value self.resultLabel.config(text=str(result), bg="green", fg="white") except ValueError: self.resultLabel.config(text="Not number/s.", bg="red", fg="black") # create the application app = Application() app.master.title("Sumator") app.master.minsize(width=100, height=50) # start the program app.mainloop()