Python Pyqt5循环复选框值



我正在尝试循环浏览我的pyqt5 gui中的所有复选框。

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

这给了我错误"窗口没有复选框属性"。window.checkbox确实不存在。它需要一个数字。

我尝试了多种事情:

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

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

问候,米歇尔

# 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)

相关内容

  • 没有找到相关文章

最新更新