使用for循环的PySide中的复选框连接stateChanged上的意外

时间:2014-06-02 01:55:02

标签: python python-3.x checkbox pyside qcheckbox

我尝试做的是使用for循环创建复选框并将函数连接到它们,每个复选框都使用不同的参数调用它。

以下是一些代码:

for video in videos:
    video_cb = QtGui.QCheckBox(video['title'])
    video_cb.toggle()
    video_cb.stateChanged.connect(lambda: self._toggle_video_cb(video))
    videos_checkboxes_container.addWidget(video_cb)

和_toggle_video_cb功能:

def _toggle_video_cb(self, video):
    print(video['title'])
    video['is_for_download'] = not video['is_for_download']

这里video是一个带键的字典:title:(str),is_for_download:(boolean)...

print仅用于检查参数,每个复选框都相同。无论我点击哪个复选框,都会打印出相同的视频标题。

为什么会这样?这是正确的方法吗?

提前致谢!

最好的问候:)

0 个答案:

没有答案