Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.4k views
in Technique[技术] by (71.8m points)

dictionary - Python AttributeError: 'QCheckBox' object has no attribute 'ischecked'

I've created a minimal reproducible example for my issue. I don't understand why it's showing AttributeError: 'QCheckBox' object has no attribute 'ischecked' Can somebody please help me understand the issue and any solution.

Example:

from PyQt5.QtWidgets import *
import sys


class a:
    
    def __init__(self):
        super().__init__()
        
        self.checkboxes_items = {
            'this': False,
            'that': True
        }
        
    def checkboxes(self):
        self.checkboxes_items_list = []
        for item, val in self.checkboxes_items.items():
            chkbox = QCheckBox()
            chkbox.setText(item)
            chkbox.setChecked(val)
            self.checkboxes_items_list.append(chkbox)  # Add to list
        for x in self.checkboxes_items_list:
            print(x.ischecked())                    # This line causes the issue


if __name__ == "__main__":
    app = QApplication(sys.argv)
    class_inst = a()
    class_inst.checkboxes()
    app.exec()

Note: I've tried to use self.chkbox instead of chkbox. but no help.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Per [Qt.Doc]: List of All Members for QCheckBox, the method (inherited from QAbstractButton) name is isChecked (1st C capitalized), so the line should be:

print(x.isChecked())

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...