【发布时间】:2015-01-31 11:01:17
【问题描述】:
我有几个小部件将连接到需要额外参数的单个函数。
我发现我可以使用 lambda 函数来为函数传递一些参数。
问题是循环中的参数被替换,而 lambda 函数只传递了最后一组。
这是我得到的:
self.widgets 是一个包含按钮组键的字典,为了简短起见,假设它有 2 个按钮[QToolButton],链接到它们的键:“播放”和“停止” .
def connections(self):
for group in self.widgets:
self.widgets[group].clicked.connect(lambda: self.openMenu(group))
def openMenu(self,group):
print group
但无论我点击什么按钮,它总是会打印相同的组,即在 for 循环中迭代的最后一个组。
有什么办法解决这个问题?
【问题讨论】:
标签: python qt lambda pyqt signals-slots