Как подсказал @Brendan в другом вопросе, вы можете просмотреть их в едином списке.Но еще один подход заключается в подключении каждой кнопки переключенного сигнала к слоту, который позволяет им регистрироваться при их проверке.
# somewhere in your class
self.checkedList = set()
def buttonChecked(self, checked):
button = self.sender()
if checked:
self.checkedList.add(button)
else:
if button in self.checkedList:
self.checkedList.remove(button)
# when you create a new button
button.toggled.connect(self.buttonChecked)
Это позволит вам всегда иметь набор только отмеченных кнопок, которые являются самоотчетными.В противном случае вам придется отслеживать их под родительским элементом и циклом, чтобы выяснить, какие из них проверяются каждый раз.
Обновление
Вот еще одна версия, которая объединяет цикл @Brendans и мое предложение сигнала.Это может помочь в ситуации, когда ваши кнопки немного более распределены по всему пользовательскому интерфейсу, а не все под одним родителем ... но сначала предположим, что все они под родителем ...
parent = dialog
for widget in parent.children():
if isinstance(widget, QPushButton):
widget.toggled.connect(self.buttonChecked)
Вы можете повторить это в вашем __init__()
для всех расположений ваших кнопок и зарегистрировать их все в слоте.