在这里,用户可以根据需要选择复选框,然后按下确定按钮.按下确定按钮后,我应该能够获得用户选中的复选框列表.
我在循环中创建复选框,这是代码:
def createGroupBox(self,livename,shotList): groupBox = QtGui.qgroupbox("live-"+livename) grpLayout = QtGui.QVBoxLayout() i=0 while i != (len(shotList)-2): qChkBx_shot = QtGui.QCheckBox("Shot-"+shotList[i],self) qChkBx_shot.stateChanged.connect(lambda: self.groupcheckBoxToggled(livename,qChkBx_shot.text())) grpLayout.addWidget(qChkBx_shot,QtCore.Qt.AlignCenter) i +=1 groupBox.setLayout(grpLayout) return groupBox
使用以下代码的GroupBox:
def InitUi(self,liveList,shotList): scrolllayout = QtGui.qgridLayout() scrollWidget = QtGui.QWidget() scrollWidget.setLayout(scrolllayout) scroll = QtGui.QScrollArea() scroll.setWidgetResizable(True) # Set to make the inner Widget resize with scroll area scroll.setWidget(scrollWidget) i=0 length = len(liveList)-2 x,y=0,0 while x <= math.ceil(length/4): for y in range(0,4): if (i < (length)): groupBox=self.createGroupBox(liveList[i],shotList) self.groupBoxes.append(groupBox) scrolllayout.addWidget(groupBox,x,y) y +=1 i +=1 x+=1 self.Okbutton = QtGui.QPushbutton('OK',self) self.Okbutton.clicked.connect(lambda: self.buttonpressed()) self.Okbutton.setMaximumWIDth(100) layout = QtGui.QVBoxLayout() layout.addWidget(scroll) layout.addWidget(self.Okbutton,QtCore.Qt.AlignRight) self.setLayout(layout) self.setwindowTitle("Customized liveShotliveSwitching") self.resize(1200,500) self.show()
在这里,我的查询是,我能够检索哪个组框被激活的值,我无法获得在该组框下检查的复选框列表.
任何人都可以帮我解决这个问题……
解决方法 使groupBox成为每个复选框的父级:qChkBx_shot = QtGui.QCheckBox("Shot-"+shotList[i],groupBox)
现在,您可以使用以下内容遍历组框的复选框:
for checkBox in groupBox.findChildren(QtGui.QCheckBox): print('%s: %s' % (checkBox.text(),checkBox.isChecked()))
要获取组合框,该复选框属于:
groupBox = checkBox.parent()总结
以上是内存溢出为你收集整理的如何获取PyQt中QGroupbox中存在的Qcheckbox的状态全部内容,希望文章能够帮你解决如何获取PyQt中QGroupbox中存在的Qcheckbox的状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)