web-dev-qa-db-fra.com

Comment vérifier si une case est cochée dans pyqt

J'essaie de faire une déclaration conditionnelle selon qu'une case à cocher est cochée ou non. J'ai essayé quelque chose comme ce qui suit, mais cela revient toujours comme vrai.

self.folderactive = QtGui.QCheckBox(self.folders)
self.folderactive.setGeometry(QtCore.QRect(50, 390, 71, 21))
self.folderactive.setObjectName(_fromUtf8("folderactive"))
if self.folderactive.isChecked:
    folders.createDir('Desktop')
    print "pass"
Elif not self.folderactive.isChecked:
    folders.deleteDir('Desktop')
    print "nopass"

Existe-t-il un moyen d'obtenir une valeur booléenne indiquant si une case à cocher est cochée ou non?

18
Joshua Strot

self.folderactive.isChecked n'est pas un booléen, c'est une méthode - qui, dans un contexte booléen, sera toujours évaluée à True. Si vous voulez l'état de la case à cocher, appelez simplement la méthode:

if self.folderactive.isChecked():
    ...
else:
    ...
30
mata