Подсчитать количество проверенных QCheckBox в макете - PyQt5 - PullRequest
0 голосов
/ 02 июня 2018

Мне нужно посчитать количество QCheckbox, отмеченных в макете (называемое "grid_checkbox").Мой код состоит из двух шагов.Первый шаг состоит в добавлении QCheckbox, а второй шаг - в подсчет проверенных.

def add_checkbox(self):
    for i in range(0, 5):
        for j in range(1):
            self.check_boxes = QtWidgets.QCheckBox("checkbox_%i" % i)
            self.grid_checkbox.addWidget(self.check_boxes,i,j)
            self.check_boxes.stateChanged.connect(self.count_checkbox)

def count_checkbox(self):
    nb_ischecked = 0
    for i in range(0, self.grid_checkbox.count()):
        self.current_checkbox = getattr(self, "checkbox_%i" % i)
        if self.current_checkbox.isChecked(): nb_ischecked = nb_ischecked + 1
    print(nb_ischecked)

Ошибка:

AttributeError: 'MyApp' object has no attribute 'checkbox_0'

1 Ответ

0 голосов
/ 03 июня 2018

Вы на правильном пути, вы просто не получаете доступ к виджетам совершенно правильно.

Попробуйте:

def count_checkbox(self):
    nb_ischecked = 0
    for x in range(self.grid_checkbox.count()):
        if self.grid_checkbox.itemAt(x).widget().isChecked():
            nb_ischecked += 1
    print(nb_ischecked)
...