在pyqt5的屏幕上打印后,如何检查复选框是否被勾选?

时间:2019-07-04 08:54:09

标签: python pyqt5

我正在读取一个csv文件,根据csv中的行数,我创建了那么多的复选框。屏幕上有一个“提交”按钮,单击后,我要检查所有复选框是否都已勾选,但现在正在检查复选框创建时是否勾选了该复选框。

我使用for循环创建了复选框,因此,我没有每个单独复选框的名称,因此,检查复选框是否被选中的唯一方法是运行.isChecked ()函数在for循环中。因此,它会在for循环运行时选中复选框。

打开CSV并计算出否。行数#### 将我们想要的行的值附加到列表“ a”中
   with open("fike_path") as f:
        reader = csv.reader(f, delimiter=",")
        next(reader)
        for i in reader:
            a.append(i[4])
    print(a)

    j=0               
根据创建的复选框到没有行数
   for i in range(len(a)):

      cb = QCheckBox(a[i], self)           
      cb.toggle()
      cb.resize(200,28)
      cb.setChecked(False)
      cb.move(720,135+j)

      j=j+15

      if cb.isChecked() == False:   ####checking if check box is ticked####
              print (cb.text()+" is not selected")
      else:
              print("Is selected")

预期结果:已选中的复选框为print(“被选中”),未选中的复选框为print(“未选中”)。

实际结果:所有复选框都打印(“未选中”),因为它检查了运行for循环的时间,即创建时间,默认值为false。

0 个答案:

没有答案