如何获取PyQt中QGroupbox中存在的Qcheckbox的状态

如何获取PyQt中QGroupbox中存在的Qcheckbox的状态,第1张

概述我的项目包含Qdialog有多个QGroupbox.Each GroupBox包含一些复选框.所有groupbox的复选框列表都相同.我没有太多的声誉来加载图像:( 在这里,用户可以根据需要选择复选框,然后按下确定按钮.按下确定按钮后,我应该能够获得用户选中的复选框列表. 我在循环中创建复选框,这是代码: def createGroupBox(self,livename,shotlist): 我的项目包含Qdialog有多个qgroupbox.Each GroupBox包含一些复选框.所有groupBox的复选框列表都相同.我没有太多的声誉来加载图像:(

在这里,用户可以根据需要选择复选框,然后按下确定按钮.按下确定按钮后,我应该能够获得用户选中的复选框列表.

我在循环中创建复选框,这是代码:

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的状态所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存