首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bind tkinter检查列表中的哪个按钮被按下

使用bind tkinter检查列表中的哪个按钮被按下
EN

Stack Overflow用户
提问于 2017-12-19 17:31:54
回答 2查看 2.1K关注 0票数 0

我有一个按钮列表,当我运行一个函数时,我需要检查该列表中的哪个按钮被按下了。

代码语言:javascript
复制
import tkinter

root = tkinter.Tk()

def Function(event):
    print('The pressed button is:')

listOfButtons = []
Button = tkinter.Button(root, text="Button 1")
listOfButtons.append(Button)
Button.pack()
Button.bind("<Button-1>", Function)

Button = tkinter.Button(root, text="Button 2")
Button.pack()
listOfButtons.append(Button)
Button.bind("<Button-1>", Function)

root.mainloop()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 17:39:24

遍历列表中的所有按钮,并检查if button is event.widget

代码语言:javascript
复制
def Function(event):
    for button in listOfButtons:
        if button is event.widget:
            print(button['text'])
            return

正如@tobias_k提到的--它已经被攻克了。您已经有一个作为event.widgetbutton。所以解决方案很简单,就像print(event.widget['text'])一样。然而,如果Function不仅可以通过点击按钮来调用,或者有几个带有按钮的列表/带有任何东西-这是必须检查的!

在另一方面,按钮不能只按鼠标左键点击,因此command选项更好!

代码语言:javascript
复制
import tkinter

root = tkinter.Tk()

def Function(button):
    print(button['text'])


...
Button = tkinter.Button(root, text="Button 1")
Button.configure(command=lambda button=Button: Function(button))
...


Button = tkinter.Button(root, text="Button 2")
Button.configure(command=lambda button=Button: Function(button))
...

root.mainloop()
票数 3
EN

Stack Overflow用户

发布于 2017-12-19 17:39:23

您可以使用命令

代码语言:javascript
复制
import tkinter

root = tkinter.Tk()

def Function(event):
    if event == 1:
        print('The pressed button is: 1')
    if event == 2:
        print('The pressed button is: 2')

listOfButtons = []
Button = tkinter.Button(root, text="Button 1", command= lambda: Function(1))
listOfButtons.append(Button)
Button.pack()

Button = tkinter.Button(root, text="Button 2",command= lambda: Function(2))
Button.pack()
listOfButtons.append(Button)

root.mainloop()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47883821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档