我可以用Python中的函数创建按钮吗?

我可以用Python中的函数创建按钮吗?,python,function,tkinter,button,Python,Function,Tkinter,Button,我的目标: 我想能够编程的计算器按钮输出相应的数字很容易,通过使用一个函数 我尝试过的: from tkinter import * root = Tk() def Buttons(num,x,y): global int int = num but1 = Button(root, padx=50, pady=50, text=num, command=Click) but1.grid(row=y, column=x) def Click(): bu

我的目标: 我想能够编程的计算器按钮输出相应的数字很容易,通过使用一个函数

我尝试过的:

from tkinter import *

root = Tk()

def Buttons(num,x,y):
    global int
    int = num
    but1 = Button(root, padx=50, pady=50, text=num, command=Click)
    but1.grid(row=y, column=x)

def Click():
    but = Label(root, text=int)
    but.grid(row=4, column=0)


Buttons(7,0,0)
Buttons(8,1,0)
Buttons(9,2,0)
Buttons(4,0,1)
Buttons(5,1,1)
Buttons(6,2,1)
Buttons(1,0,2)
Buttons(2,1,2)
Buttons(3,2,2)
Buttons(0,1,3)

root.mainloop()
问题 最后使用的按钮功能的输出总是int。(在这种情况下,无论我按下哪个按钮,输出都将始终为“0”。)
我知道这是因为我将int设置为全局。我该怎么做才能让按钮输出相应的数字?

有多种方法可以实现这一点,以下是我的方法之一

def按钮(num、x、y):
但是1=按钮(根,padx=50,pady=50,text=num,command=lambda:Click(num))
但是1.网格(行=y,列=x)
def单击(int):
但是=标签(根,文本=int)
但是.grid(行=4,列=0)
注释

  • 您可以使用
    lamda
    函数,并设置这些按钮的命令,以调用
    click
    函数及其作为参数表示的数字,在本例中为变量
    num
  • 与每次使用
    grid
    放置新标签不同,您可能还希望使用
    but.config(text=str(int))
    but['text']=str(int)
    在主代码中将标签网格化一次后更改值