我正在尝试循环浏览我的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)