【问题标题】:Can I create Buttons with a Function in Python?我可以在 Python 中创建带有函数的按钮吗?
【发布时间】:2020-12-28 23:49:48
【问题描述】:

我的目标: 我希望能够通过使用函数为计算器编程按钮,从而轻松输出对应的数字。

我尝试过的:

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()

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

【问题讨论】:

    标签: python function tkinter button


    【解决方案1】:

    有多种方法可以解决这个问题,这是我的一种方法

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

    注意事项

    • 您可以利用lamda函数并设置这些按钮的命令来调用click函数以及它所代表的数字作为参数,在本例中为变量num。
    • 不是每次都使用grid 放置一个新标签,您可能还想使用but.config(text=str(int)) 或but['text']=str(int) 在标签gridded 一次后更改值在主代码中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-11
      • 2012-04-09
      • 2021-08-14
      • 2017-03-13
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多