Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Откуда PyQt берёт False для функции в qt слоте?
@saprykinoff

Как передать параметр кнопке pyqt?

Задача: Строится табличка . На пересечении в таблице идет кнопка с указанием строки и столбца. Каждая кнопка должна запускать функцию, передавая как параметры строку и ряд в таблице.
Вариант с переопределением нажатия на клетку я рассматриваю как решение, но все же хотелось научиться и понять как работает передача параметров при нажатии на кнопку
последний вариант кода
def open_browser( acc, key):
    print(f"want to open {acc}, {key}")


....
btn = QtWidgets.QPushButton(text=f"{i}/{j}")
tmp = lambda a =i, b =j:  open_browser(a, b)
tmp()
btn.clicked.connect(tmp)
self.ui.tableWidget.setCellWidget(i, j, btn)
...

работает нормально при инициализации(вызов tmp в коде), но первый параметр ломается при вызове через клик на кнопку
62fa79bd1623f495770403.png
---
Если в функции используется параметры всегда необходимо либо добавить "пустой" первый парметр, либо приписать @QtCore.pyqtSlot() (что приводит к явному указанию "типа" функции)
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега PyQt
Седой и строгий
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы