📜  如何检查在 Tkinter 中单击了哪个按钮?

📅  最后修改于: 2022-05-13 01:54:29.373000             🧑  作者: Mango

如何检查在 Tkinter 中单击了哪个按钮?

您是否在应用程序中使用了各种按钮,并且对按下哪个按钮感到困惑?不知道如何摆脱这个解决方案!!别着急,看完这篇文章就知道了。在本文中,我们将详细解释知道哪个按钮被按下的过程。

循序渐进的方法:

第一步:首先导入库Tkinter。

from tkinter import *

第 2 步:现在,使用 Tkinter 创建一个 GUI 应用程序。

app = Tk()

第 3 步:然后,创建一个带有一个参数的函数,即单击按钮时要显示的文本

def which_button(button_press):
   print (button_press)

第 4 步:此外,通过调用您在第 3 步中声明的 which_button函数创建并显示第一个按钮。



b1 = Button(app, text="#Text you want to show in button b1",
            command=lambda m="#Text you want to show when\
            b1 is clicked": which_button(m))
            
b1.grid(padx=10, pady=10)

第 5 步:此外,通过调用您在第 3 步中声明的 which_button函数创建并显示第二个按钮。

b2 = Button(app, text="#Text you want to show in button b2",
            command=lambda m="#Text you want to show when \
            b2 is clicked": which_button(m))
            
b2.grid(padx=10, pady=10)

第 6 步:接下来,通过将 n 替换为您希望它在应用程序上显示的按钮数,继续对 n 个按钮重复第 4 步和第 5 步。不要忘记调用您在第 3 步中声明的 which_button函数。

bn = Button(app, text="#Text you want to show in button bn",
            command=lambda m="#Text you want to show when \
            bn is clicked": which_button(m))
            
bn.grid(padx=10, pady=10)

第 7 步:最后,创建一个无限循环以在屏幕上显示应用程序。

app.mainloop()

例子:

在这个例子中,如果屏幕上打印了文本“ It is an apple ”,我们知道按下了“ Apple ”按钮,否则当屏幕上打印“ It is abanana ”时,我们知道“ Banana” ' 按钮被按下。

Python
# Python program to determine which
# button was pressed in tkinter
  
# Import the library tkinter
from tkinter import *
  
# Create a GUI app
app = Tk()
  
# Create a function with one paramter, i.e., of 
# the text you want to show when button is clicked
def which_button(button_press):
    # Printing the text when a button is clicked
    print(button_press)
  
  
# Creating and displaying of button b1
b1 = Button(app, text="Apple",
            command=lambda m="It is an apple": which_button(m))
  
b1.grid(padx=10, pady=10)
  
# Creating and displaying of button b2
b2 = Button(app, text="Banana",
            command=lambda m="It is a banana": which_button(m))
b2.grid(padx=10, pady=10)
  
# Make the infinite loop for displaying the app
app.mainloop()


输出: