如何解决关于tkinter按钮的基本问题
| 我一般都不熟悉tkinter和GUI编程,因此这可能是一个非常基本的问题。无论如何,假设我有一组按钮供用户选择,我想要的是用户单击的所有按钮对象的列表。基本上,我想知道用户单击了哪些按钮。解决方法
在每个按钮上,您可以设置命令以将自身添加到单击按钮的列表中。
clicked = []
foo = Button(root,text=\'bar\',command=lambda self:clicked.append(self))
不知道语法是否正确,但这是基本思想。
, 这是一个涵盖Python事件的好网站,可以指导您:
http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
听起来您可能想要类似于复选框的内容,如果需要的话:
无法理解如何从wxpython中的复选框中获取数据
, 这是一个简单的示例,您可以执行以下操作来找出是否已按下按钮。
import tkinter.ttk,functools
class Example(tkinter.Tk):
def __init__(self,buttons):
super().__init__()
self.button_set = set()
for button in range(buttons):
button = tkinter.ttk.Button(self,text=\'Button \'+str(button))
button.pack()
self.button_set.add(button)
self.setup_buttons()
self.bind(\'<Escape>\',self.check_buttons)
self.mainloop()
def setup_buttons(self):
for button in self.button_set:
button[\'command\'] = \\
functools.partial(setattr,button,\'pressed\',True)
button.pressed = False
def check_buttons(self,event):
for button in self.button_set:
print(\'Button {} has{} been pressed.\'.format(id(button),(\' not\',\'\')[button.pressed]))
if __name__ == \'__main__\':
Example(5)
运行代码后,您可以按ѭ2键在控制台中获得按了哪些按钮的打印输出。按下按钮会将其pressed
属性设置为true,您可以再次打印出已按下的按钮。在编程上,您将按照check_buttons
方法中的示例来查找是否已按下按钮。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。