在 Python Tkinter 中获取父小部件的父级

0Co*_*ool 3 python tkinter widget parent

我正在尝试获取小部件的父级,然后获取该小部件的父级。但是每次我尝试时都会出错。

错误:

AttributeError: 'str' object has no attribute '_nametowidget'
Run Code Online (Sandbox Code Playgroud)

为什么它给我那个错误。有人可以向我解释为什么我会收到此错误并帮助我修复它吗?

代码:

parent = event.widget.winfo_parent()
parentName = event.widget._nametowidget(parent)

frameParent = parentName.winfo_parent()
frameParentName = frameParent._nametowidget(frameParent)
Run Code Online (Sandbox Code Playgroud)

Foo*_*167 8

grandparent = event.widget.master.master
Run Code Online (Sandbox Code Playgroud)

请参阅此处答案


Zag*_*fai 4

http://effbot.org/tkinterbook/widget.htm

下面提到,winfo_parent()是一个获取父母姓名的方法。

您收到的错误意味着 event.widget 没有名为 _nametowidget 的方法。所以你不能将其称为函数。

您可以尝试下面的代码来获取父级。

parent = event.widget.winfo_parent()
from Tkinter import Widget
Widget._nametowidget(parent)
Run Code Online (Sandbox Code Playgroud)