Подсчет нажатия на кнопку. 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_())
