我可以用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)