Tkinter - 重复关键词争论

时间:2017-06-08 20:24:09

标签: python-3.x tkinter

尝试搜索此错误,目前在我的朋友程序之前制作一个解决方案窗口(帮助解决一些小问题)目前在一行中尝试使用两个命令时遇到问题(可能很容易解决我的问题),如果有人可以帮助我,这将是史诗般的!

这是代码!

res1 = tkinter.Button(settings, text="800x600", fg="ghost white" , bg="grey10", font=(16), command=resolution1, command=close_window)
res2 = tkinter.Button(settings, text="1024x768", fg="ghost white" , bg="grey10", font=(16), command=resolution2, command=close_window)
res3 = tkinter.Button(settings, text="1280x720", fg="ghost white" , bg="grey10", font=(16), command=resolution3, command=close_window)
res4 = tkinter.Button(settings, text="1920x1080", fg="ghost white" , bg="grey10", font=(16), command=resolution4, command=close_window)

如果您需要完整的代码,请大声喊叫!

非常感谢!

1 个答案:

答案 0 :(得分:1)

使用带按钮的命令的最佳方法是使用按钮调用函数。在该功能中,您可以执行任何操作,包括调用多个函数:

def do_resolution1():
    resolution1()
    close_window()

def do_resolution2():
    resolution2()
    close_widnow()
...
res1 = tkinter.Button(..., command=do_resolution1)
res2 = tkinter.Button(..., command=do_resolution2)

您还可以编写一个函数,将另一个函数作为参数,运行它,然后调用close_window。然后,您可以使用lambda为每个按钮调用具有不同参数的函数:

我不建议初学者采用这种方法,因为lambda可能令人困惑。

def set_resolution(func):
    func()
    close_window()
...
res1 = tkinter.Button(..., command=lambda: set_resolution(resolution1))
res2 = tkinter.Button(..., command=lambda: set_resolution(resolution2))
...