Хорошо, так что я довольно глубоко в приложении, которое я делаю с использованием PyQt5, и у меня есть раздел (QScrollArea), где у меня по существу есть несколько строк «учетных записей», которые являются QWidgets. Пользователь может добавить учетную запись и удалить учетную запись, но я хотел бы дать им возможность редактировать учетную запись. В той же строке, что и учетная запись, находится QPushButton, который в основном является кнопкой редактирования. Если у меня 3 аккаунта, то я вижу 3 кнопки. Однако, когда я нажимаю кнопку для любой учетной записи, все кнопки ссылаются на один и тот же объект кнопки. Я храню объекты в списке и использую findChildren (), чтобы получить объекты. Оба из них дадут мне три разных объекта кнопки, но использование clicked.connect () с кнопками ссылается только на самую последнюю или самую нижнюю кнопку.
Я вызываю функцию clicked.connect () после того, как часть моего кода, которая добавляет учетную запись. Я также попытался переместить это прямо внизу, где я создаю экземпляр кнопки, но это не сработало.
Вот что у меня есть:
btns = self.accountsWidget.findChildren(QPushButton)
for btn in btns:
btn.clicked.connect(lambda: self.editAccount(btn))
Метод, который я вызываю, чтобы попытаться отредактировать учетную запись, находится здесь:
def editAccount(self, btn):
print(btn)
self.editAccountWindow = EditAccountsWindow()
self.editAccountWindow.show()
Результат напечатанного всегда последний объект QPushButton, и я только печатаю, чтобы увидеть, ссылаюсь ли я на нужную кнопку. Этот метод просто открывает окно, но то, что отображается в окне, зависит от вызова правильного объекта. Я хочу использовать объект для ссылки на то, какую учетную запись я хочу редактировать.
Я просмотрел множество SO-потоков и не смог найти ничего похожего на это. Я думаю, что что-то упустил, поэтому, пожалуйста, помогите брату:)