Подсчет нажатия на кнопку. Python

Как сделать так, чтобы а не обнулялась. Мне нужно посчитать количество нажатий на кнопку. Например, сейчас я могу нажать 3 раза и будет вывод 1 1 1, а надо 1+1+1

class ClassesPage1(QtWidgets.QWizardPage):
    def __init__(self, *args, **kwargs):
        super(ClassesPage1, self).__init__(*args, **kwargs)
        super(ClassesPage1, self).__init__(*args, **kwargs)

        self.setTitle("...")
        self.setSubTitle("...")

        self.checkBox_1 = QtWidgets.QCheckBox('...')
        self.checkBox_2 = QtWidgets.QCheckBox('...')
        self.checkBox_3 = QtWidgets.QCheckBox('...')
        self.checkBox_4 = QtWidgets.QCheckBox('...')

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.checkBox_1)
        self.layout.addWidget(self.checkBox_2)
        self.layout.addWidget(self.checkBox_3)
        self.layout.addWidget(self.checkBox_4)
        self.setLayout(self.layout)

        self.checkBox_1.stateChanged.connect(self.check)
        self.checkBox_2.stateChanged.connect(self.check)
        self.checkBox_3.stateChanged.connect(self.check)
        self.checkBox_4.stateChanged.connect(self.check)

    def check(self, state):
        a = 0
        if state == Qt.Checked:
            a = a + 1
        print(a)

    def nextId(self):
        return Wizard.class4

Ответы (1 шт):

Автор решения: S. Nick

Создайте список checkBox и проверьте их в цикле.

import sys
from PyQt5 import QtCore, QtGui, QtWidgets


class ClassesPage1(QtWidgets.QWizardPage):
    def __init__(self, *args, **kwargs):
        super(ClassesPage1, self).__init__(*args, **kwargs)
#        super(ClassesPage1, self).__init__(*args, **kwargs)

        self.setTitle("...")
        self.setSubTitle("...")

        self.checkBox_1 = QtWidgets.QCheckBox('...')
        self.checkBox_2 = QtWidgets.QCheckBox('...')
        self.checkBox_3 = QtWidgets.QCheckBox('...')
        self.checkBox_4 = QtWidgets.QCheckBox('...')

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.checkBox_1)
        self.layout.addWidget(self.checkBox_2)
        self.layout.addWidget(self.checkBox_3)
        self.layout.addWidget(self.checkBox_4)
        self.setLayout(self.layout)

        self.checkBox_1.stateChanged.connect(self.check)
        self.checkBox_2.stateChanged.connect(self.check)
        self.checkBox_3.stateChanged.connect(self.check)
        self.checkBox_4.stateChanged.connect(self.check)
        
        self.listCheckBox = [self.checkBox_1, self.checkBox_2, self.checkBox_3, self.checkBox_4] # +++ 
        self.a = 0                                                                               # +++      

    def check(self, state):
        self.a = 0                                               # +++ 
#        if state == Qt.Checked:
#            a = a + 1
        for checkBox in self.listCheckBox:                       # +++ 
            if checkBox.isChecked():                             # +++ 
                self.a += 1                                      # +++ 
        print(self.a)

    def nextId(self):
        return Wizard.class4
        

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = ClassesPage1()
    w.show()
    sys.exit(app.exec_())        

введите сюда описание изображения

→ Ссылка