2013-12-08 15 views
12

Sto provando a fare un'istruzione condizionale in base al fatto che una casella di controllo sia selezionata o meno. Ho provato qualcosa di simile al seguente, ma restituisce sempre vero.Come verificare se una casella di controllo è spuntata in pyqt

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" 

C'è un modo per ottenere un valore bool se la casella di controllo è selezionata o no?

risposta

19

self.folderactive.isChecked non è un valore booleano, è un metodo - che, in un contesto booleano, verrà sempre valutato su True. Se si desidera lo stato della casella di controllo, basta richiamare il metodo:

if self.folderactive.isChecked(): 
    ... 
else: 
    ... 
+0

Che ha funzionato, grazie mille. –

Problemi correlati