我想要运行多个功能,当我点击一个按钮。 例如,我希望我的按钮看起来像
self.testButton = Button(self, text = "test",
command = func1(), command = func2())
当我执行这条语句,我得到一个错误,因为我不能分配东西的参数两次。 我怎样才能让命令执行多种功能。
我想要运行多个功能,当我点击一个按钮。 例如,我希望我的按钮看起来像
self.testButton = Button(self, text = "test",
command = func1(), command = func2())
当我执行这条语句,我得到一个错误,因为我不能分配东西的参数两次。 我怎样才能让命令执行多种功能。
你可以创建一个通用的功能相结合的功能,它可能是这个样子:
def combine_funcs(*funcs):
def combined_func(*args, **kwargs):
for f in funcs:
f(*args, **kwargs)
return combined_func
然后,你可以创建这样的按钮:
self.testButton = Button(self, text = "test",
command = combine_funcs(func1, func2))
def func1(evt=None):
do_something1()
do_something2()
...
self.testButton = Button(self, text = "test",
command = func1)
也许?
我想也许你可以这样做
self.testButton = Button(self, text = "test",
command = lambda x:func1() & func2())
但真毛...
你可以简单地使用拉姆达是这样的:
self.testButton = Button(self, text=" test", command=lambda:[funct1(),funct2()])
Button(self, text="text", command=func_1()and func_2)
您可以使用此拉姆达:
self.testButton = Button(self, text = "test", lambda: [f() for f in [func1, funct2]])
我也发现了这个,这对我的作品。 在类似的情况...
b1 = Button(master, text='FirstC', command=firstCommand)
b1.pack(side=LEFT, padx=5, pady=15)
b2 = Button(master, text='SecondC', command=secondCommand)
b2.pack(side=LEFT, padx=5, pady=10)
master.mainloop()
... 你可以做...
b1 = Button(master, command=firstCommand)
b1 = Button(master, text='SecondC', command=secondCommand)
b1.pack(side=LEFT, padx=5, pady=15)
master.mainloop()
我所做的只是重新命名的第二个变量b2
一样的第一b1
和删除,在解决方案中,第一个按钮文本(所以才有第二个是可见的,将作为一个单一的一个)。
我也试过功能解决方案,但对于一个不起眼的原因,它没有为我工作。