【发布时间】:2019-01-31 19:23:37
【问题描述】:
我刚刚开始使用 PyQt5 开发一个新的 python 项目。程序必须根据需要制作尽可能多的复选框。我正在尝试使用 for 循环。但是我无法使用复选框名称,因为每次使用 for 循环创建一个新复选框时它都会被覆盖。我的问题:在 for 循环完成后,如何查看选择了哪一次?
from PyQt5 import QtWidgets, uic, QtGui
from PyQt5.QtWidgets import *
from functies import dataOphalen
import os
import json
data = {}
checkLijst = []
alleVrucht = []
def radioAanmaken():
col = 0
for i in data:
rij = 0
lbl = QLabel(i)
ui.gridcheck.addWidget(lbl,rij,col)
rij+=1
for b in data[i]:
check = QCheckBox(b)
ui.gridcheck.addWidget(check,rij,col)
#save name in variable
checkLijst.append({"naam":check,"col":col,"rij":rij,"vrucht":i})
rij+=1
check = QCheckBox(("Alle "+i))
ui.gridcheck.addWidget(check,rij,col)
alleVrucht.append({"naam":check,"vrucht":i})
col+=1
app = QtWidgets.QApplication([])
ui = uic.loadUi("addNew.ui")
data = dataOphalen("percelen.json")
radioAanmaken()
ui.show()
app.exec()
编辑解决方案:
for i in range(ui.gridcheck.count()):
checkb = ui.gridcheck.itemAt(i).widget()
if checkb.isChecked():
print(checkb.text())
【问题讨论】:
标签: python python-3.x user-interface pyqt5