如何搜索特定种类的qt gui控件

How to search for a specific kind of qt gui control

我有一个 QWidget,其中包含一个 QGroupBox,其中包含 QComboBoxQLineEditQCheckBox

我需要遍历所有的控件,如果控件是QCheckBox,请问是否勾选了。我需要知道如何检查所有 QCheckBox - 这个想法可能是这样的:

count = 0
for control in groupbox.controls():
    if control is type of QtGui.QCheckBox:
        if control.isChecked:
            count = count + 1
        else:
            print('no checked')
    else:
        print('no QtGui.QCheckBox')
print ('there are '+ str(count)+ 'checked')

如果复选框都是组框的子项,那么你可以试试这个:

count = 0
for checkbox in groupbox.findChildren(QtGui.QCheckBox):
    if checkbox.isChecked():
        count += 1
print('there are %s checked' % count)

如果复选框是这样创建的,它们将成为组框的子项:

checkbox = QtGui.QCheckBox('Title', groupbox)