迭代复选框 - pyqt

Iterate check boxes - pyqt

我有一个数字不断变化的文件(每次调用 QGIS 插件时):

0
8
7

我有 9 个复选框(self.t0、self.t1、...、self.t8)

我想勾选文件内容:

我试过这个:

class mask_n_functions(QDialog, Ui_Dialog):

    def __init__(self, parent):
        QDialog.__init__(self, parent)
        self.setupUi(self)

        self.set_prefs.clicked.connect(self.preferences)
        self.cancel.clicked.connect(self.closePlugin)

        with open(r'C:\path\checklist.txt', "r") as f:
            for line in f:
                checkboxname = "t" + str(line)
                self.checkboxname.setChecked(True)

我收到错误:

AttributeError: 'mask_n_functions' object has no attribute 'checkboxname'

如何遍历复选框?

我必须使用分组框吗?

您需要使用getattr功能。您使用的样式适用于 PHP,不适用于 Python。

因此,使用类似下面的内容代替问题中提到的最后一行。

checkbox = getattr(self, checkboxname)
checkbox.setChecked(True)