Python 在布局中的小部件内的小部件上循环

Python 在布局中的小部件内的小部件上循环,python,pyqt,qgroupbox,Python,Pyqt,Qgroupbox,类似于我们这里的问题,但有点复杂 我有 QVGridLayout QGroupBox QGridLayout QLineEdit 我想访问QLineEdit,但到目前为止我不知道如何访问QGroupBox的子项 for i in range(self.GridLayout.count()): item = self.GridLayout.itemAt(i) for i in range(item

类似于我们这里的问题,但有点复杂

我有

QVGridLayout
   QGroupBox
      QGridLayout
         QLineEdit
我想访问QLineEdit,但到目前为止我不知道如何访问QGroupBox的子项

        for i in range(self.GridLayout.count()):
            item = self.GridLayout.itemAt(i)
            for i in range(item.count()):
                lay = item.itemAt(i)
                edit = lay.findChildren(QLineEdit)
                print edit.text()
有人能给我指一下右边的方向吗?

排序:

for i in range(self.GridLayout.count()):
     item = self.GridLayout.itemAt(i)
     if type(item.widget()) == QGroupBox:
          child =  item.widget().children()
我必须使用item.widget()来访问GroupBox。
希望这能有所帮助

将小部件添加到布局时,它会自动成为其所设置布局的小部件的子部件。因此,该示例简化为两层:

for group in self.GridLayout.parentWidget().findChildren(QGroupBox):
    for edit in group.findChildren(QLineEdit):
        # do stuff with edit
但是,
findChildren
是递归的,因此如果所有行编辑都在组框中,则可以简化为一行:

for edit in self.GridLayout.parentWidget().findChildren(QLineEdit):
    # do stuff with edit