迭代复选框 - 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)
我有一个数字不断变化的文件(每次调用 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)