我的程序中有5个按钮,所有按钮都需要设置一个变量 我可以为所有人制作一个单独的功能,但我认为应该有更好的方法 所以我尝试了以下内容:
self.__Button1 = tk.Button(self.parent,text='Start', command=lambda: (start_flag = True)).pack()
但这不起作用。有没有办法做到这一点或者其他简单的方法来设置自己的变量(start_flag就是其中之一)?
谢谢你
更新:
通过小说评论我尝试了以下内容: 但是这不起作用,所以我将使用与furas建议的几乎相同的功能。
def setarr(self, *args, flag, bool):
# set flag according to button press
print(flag)
flag = bool
答案 0 :(得分:1)
执行此操作的常规方法是创建一个接受单个参数的函数,并根据传入的参数设置变量。您可以使用lambda
或functools.partial
创建按钮命令:
import Tkinter as tk
class Example(object):
def __init__(self):
self.root = tk.Tk()
self.variable = None
self.button1 = tk.Button(self.root, text="One",
command=lambda: self.set_variable(1))
self.button2 = tk.Button(self.root, text="Two",
command=lambda: self.set_variable(2))
self.label = tk.Label(self.root, text="", width=20)
self.label.pack(side="top", fill="x")
self.button1.pack(side="top")
self.button2.pack(side="top")
def start(self):
self.root.mainloop()
def set_variable(self, value):
self.variable = value
self.label.configure(text="variable = %s" % self.variable)
example = Example()
example.start()