【问题标题】:How to check if a checkbox is checked in pyqt如何检查是否在pyqt中选中了复选框
【发布时间】:2013-12-25 16:04:13
【问题描述】:

我正在尝试根据是否选中复选框来做出条件语句。我尝试了类似以下的方法,但它总是返回 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"

有没有办法获得一个复选框是否被选中的布尔值?

【问题讨论】:

    标签: python-2.7 pyqt4


    【解决方案1】:
    x = self.folderactive.isChecked()
    

    x 将是 TrueFalse——一个布尔值。

    (不同的是末尾的括号。)

    【讨论】:

      【解决方案2】:

      self.folderactive.isChecked 不是布尔值,它是一种方法——在布尔上下文中,它的计算结果总是True。如果你想要复选框的状态,只需调用方法:

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

      【讨论】:

      • 为了避免 if-then-else 构造并自己跟踪状态,以编程方式,是否有任何东西在选中复选框时发出信号(另一个未选中时),例如 ``` self .checkBox.toggled.connect(self.calculate)``` ?
      猜你喜欢
      • 2010-10-28
      相关资源
      最近更新 更多