如何从PanedWindow通过ID获得小部件?

时间:2019-02-17 13:31:03

标签: python tkinter widget

我有一个 PanedWindow

它是 panes(),它返回 _tkinter.Tcl_Obj 的列表,而不是窗格中的小部件的列表。

如何通过 Tcl_Obj.string 中的ID将真实的窗口小部件 add()添加到 PaedWindow 中?

(当然,我可以将 PaedWidget 子类化,并保留真实的小部件列表)。

import tkinter as tk

root = tk.Tk()
pw = tk.PanedWindow(root)
pw.add(tk.Frame(pw))
pw.add(tk.Frame(pw))
panes = pw.panes()

print(type(panes[0]))
print(panes[0].typename)
print(panes[0].string)

# The result is:
# <class '_tkinter.Tcl_Obj'>
# window
# .140650792907720.140650822212800

# how can I get tk.Frame by the ID = .140650792907720.140650822212800 ?

1 个答案:

答案 0 :(得分:0)

您可以使用小部件方法nametowidget

frame = root.nametowidget(panes[0])