我尝试做的是使用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
仅用于检查参数,每个复选框都相同。无论我点击哪个复选框,都会打印出相同的视频标题。
为什么会这样?这是正确的方法吗?
提前致谢!
最好的问候:)