Я пытаюсь получить сумму t1 и t2 после нажатия кнопки b1. Тем не менее, я не могу понять, где расположить def sum (self): поскольку он в настоящее время находится в коде, я получаю ошибку TypeError: sum () отсутствует 1 обязательный позиционный аргумент: 'self' после ввода в t1 и t2, затем нажимаем b1.
from tkinter import *
import tkinter as tk
class Example(tk.Frame):
def __init__(self, root):
tk.Frame.__init__(self, root)
self.canvas = tk.Canvas(root, borderwidth=0, background="#ffffff")
root.geometry("1000x500")
self.frame = tk.Frame(self.canvas, background="#ffffff")
self.vsb = tk.Scrollbar(root, orient="vertical", command=self.canvas.yview)
self.canvas.configure(yscrollcommand=self.vsb.set)
self.vsb.pack(side="right", fill="y")
self.canvas.pack(side="left", fill="both", expand=True)
self.canvas.create_window((4,4), window=self.frame, anchor="nw",
tags="self.frame")
self.populate()
def populate(self):
l1=Label(self.frame,text="First Number")
l1.grid(row=0,column=0)
t1=Entry(self.frame)
t1.grid(row=0,column=1)
l2=Label(self.frame,text="Second Number")
l2.grid(row=1,column=0)
t2=Entry(self.frame)
t2.grid(row=1,column=1)
l3=Label(self.frame,text="Result")
l3.grid(row=2,column=0)
t3=Entry(self.frame)
t3.grid(row=2,column=1)
b1=Button(self.frame,text="Click For SUM",command=sum)
b1.grid(row=3,column=1)
def onFrameConfigure(self, event):
'''Reset the scroll region to encompass the inner frame'''
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
def sum(self):
a=int(self.t1.get())
b=int(self.t2.get())
c=a+b
self.t3.insert(0,c)
if __name__ == "__main__":
root=tk.Tk()
Example(root).pack(side="top", fill="both", expand=True)
root.mainloop()