如何检查pyqt中是否选中了复选框

Jos*_*rot 19 pyqt4 python-2.7

我正在尝试根据是否选中复选框来创建条件语句.我尝试了类似下面的内容,但它总是返回true.

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"
Run Code Online (Sandbox Code Playgroud)

有没有办法获得是否选中复选框的bool值?

mat*_*ata 31

self.folderactive.isChecked它不是布尔值,它是一个方法 - 在布尔上下文中,它总是会求值True.如果您想要复选框的状态,只需调用方法:

if self.folderactive.isChecked():
    ...
else:
    ...
Run Code Online (Sandbox Code Playgroud)

  • 为了避免 if-then-else 构造并自己以编程方式跟踪状态,是否有任何东西在选中复选框时发出信号(未选中时发出信号),例如 ``` self.checkBox.toggled.connect(self .计算)``` ? (2认同)