отправляет проверенный параметр. Так что постарайтесь:
от вопрос уже есть ответ здесь:
Использование лямбда-выражения для подключения слотов в pyqt 3 ответаотказ: Я уже читал другие вопросы, подобные этому (например, этоодин) но пока не нашел для меня работающего решения (или я просто не понимаю их :))
Когда я создаюlambda
внутри цикла для доступа к данным из области блока я получаюpylint
предупреждение (cell-var-from-loop
) из-за того, как Python захватывает работу. Например:
for key, value in data.items():
button = QtGui.QPushButton('show data')
button.clicked.connect(lambda: show_data(value))
table_widget.setCellWidget(1, 1, button)
Есть еще вопросы, подобные этому, но я до сих пор не знаю, как я систематически решаю эту проблему. Я пытался предоставить значения по умолчанию дляlambda
как предложеноВот:
for key, value in data.items():
button = QtGui.QPushButton('show data')
button.clicked.connect(lambda v=value: show_data(v))
table_widget.setCellWidget(1, 1, button)
Но когда я делаю это так, странные вещи случаютсяvalue
должна быть строка в моем примереshow_data
вызывается сbool
.
Я делаю что-то совершенно не так? Должен ли этот подход работать?