获取Tkinter python应用程序的所有子级

获取Tkinter python应用程序的所有子级,python,tkinter,Python,Tkinter,我想得到Tkinter应用程序的所有子项 到目前为止,我使用以下方法: _list = root.winfo_children() 如果我没有笔记本小部件,这很好,但是一旦我添加了笔记本小部件,我就无法获得笔记本小部件的子项 我甚至尝试过递归,如下所示: childlist = [] def all_children (self, wid) : _list = wid.winfo_children() for item in _list :

我想得到Tkinter应用程序的所有子项

到目前为止,我使用以下方法:

_list = root.winfo_children()
如果我没有笔记本小部件,这很好,但是一旦我添加了笔记本小部件,我就无法获得笔记本小部件的子项

我甚至尝试过递归,如下所示:

childlist = []
def all_children (self, wid) :
        _list = wid.winfo_children()    
        for item in _list :
            if item.winfo_children() :
                childlist .extend(item.winfo_children())
                all_children(item)              
            return null

希望有人发现它很有用,只需对递归进行少量修改,就可以得到所有的子对象

def all_children (self, wid, finList) :
        _list = wid.winfo_children()        
        for item in _list :
            finList.append(item)
            self.all_children(item,finList)   
        return finList

希望有人发现它很有用,只需对递归进行少量修改,就可以得到所有的子对象

def all_children (self, wid, finList) :
        _list = wid.winfo_children()        
        for item in _list :
            finList.append(item)
            self.all_children(item,finList)   
        return finList

请提供一个。我们无法看到任何笔记本小部件!事实上,我没有把整个应用程序的代码,我发现它的递归问题。感谢您抽出时间,绅士@МalayМeааааа回答您自己的问题,如果您已经解决了问题,请提供。我们无法看到任何笔记本小部件!事实上,我没有把整个应用程序的代码,我发现它的递归问题。感谢您抽出时间,先生@МalayМeаааа如果您已经解决了问题,请回答您自己的问题。谢谢!漂亮的代码!我将用一个关于儿童的回调来替换finList,但是逻辑非常棒(6行)。谢谢!漂亮的代码!我将用一个关于儿童的回调来替换finList,但是逻辑非常棒(6行)。