Python PyQt5 循环复选框值

Python PyQt5 loop checkbox values

我正在尝试遍历我的 PyQt5 gui 中的所有复选框。

for i in range(2):
    self.checkbox+i

这给了我错误 'Window has no checkbox attribute'。 Window.checkbox 确实不存在。它需要一个数字。

我试过很多东西,比如:

for N in range(2):
    obj = self.checkbox+N
    print(obj.text())

为什么我的 for 循环失败或更好,我如何获得我的 for 循环 运行? 欢迎提出任何建议。

您好, 米歇尔

# working example

#!/usr/bin/env python3
from PyQt5.QtWidgets import *

class Window(QWidget):
    def __init__(self):
        QWidget.__init__(self)

        layout = QGridLayout()
        self.setLayout(layout)

        self.checkbox0 = QCheckBox("checkMe0")
        self.checkbox0.toggled.connect(self.checkbox_toggled)
        layout.addWidget(self.checkbox0, 0, 0)

        self.checkbox1 = QCheckBox("checkMe1")
        self.checkbox1.toggled.connect(self.checkbox_toggled)
        layout.addWidget(self.checkbox1, 1, 0)



    def checkbox_toggled(self):
        print(self.checkbox0.text())

app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())

您不能按照您尝试的方式分配变量。复选框 + 1 不等于名为 self.checkbox1 的复选框项。要按照您尝试的方式执行此操作,您可以使用字典。它看起来像这样:

check_dict = {0: self.checkbox0, 1: self.checkbox1}
for i in range(len(check_dict)):
    checkbox = check_dict[i]
    checkbox.setChecked(True)