tkk将参数传递给回调[重复]
Posted
技术标签:
【中文标题】tkk将参数传递给回调[重复]【英文标题】:tkk passing parameters to callbacks [duplicate] 【发布时间】:2017-01-18 08:43:51 【问题描述】:我正在开发一个 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】:-
在您对
add_command
中的SendActiveProjects
进行函数调用后,会自动按下该按钮。
您可以使用functools.partial 做您想做的事。
【讨论】:
最简单的解决方案是将:command=ScanActiveProjects(True) 更改为:command= lambda: ScanActiveProjects(False)以上是关于tkk将参数传递给回调[重复]的主要内容,如果未能解决你的问题,请参考以下文章