tkk将参数传递给回调

时间:2016-09-10 09:03:29

标签: python tkinter python-3.5

我正在研究tkinter ttk界面,以自动化/促进一些相对复杂的报告。

我有一个功能,可以跨目录执行复杂的数据扫描。要执行该功能,请单击工具栏中的按钮小部件:

fileMenu.add_command(label="Generate Report",command=ScanActiveProjects)

但是我想通过添加一个额外的参数(simple = True / False)来重用此函数中的代码,这样我就可以将函数的部分和完整执行映射到各个按钮。

我认为我可以像这样简单地做到这一点:

fileMenu.add_command(label="Generate Management Report",command=ScanActiveProjects(simple=True)
fileMenu.add_command(label="Generate Detailed Report",command=ScanActiveProjects(simple=False)

这样做的结果是在启动程序时自动按下按钮 - 这是我不明白的。所以我的问题是:

1)为什么在添加(simple = True)/(simple = False)参数时会自动按下按钮?

2)如何将回调函数绑定到按钮,但是按钮是否提供了特定的构造函数参数?

1 个答案:

答案 0 :(得分:1)

  1. 由于您在SendActiveProjects中对add_command进行了功能调用,因此会自动按下该按钮。
  2. 您可以使用functools.partial做您想做的事。