Python Tkinter中.xxxxxxx的含义是什么
What is the meaning of .xxxxxxx in Python Tkinter
我想知道 .xxxxxx
(例如 .50109912
)在 Python Tkinter 中的含义是什么。我试图检查 Widget_name(container, **configuration options).pack()
编辑的 return 是什么
当然它会 return None
但是当我在打包之前检查小部件 return 编辑了什么时,它给出了这样的东西 .50109912
。这就是我在 IDLE Python3.3.
中得到它的方式
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(mybutton)
.50109912
数字50109912
是按钮小部件的唯一Python对象ID:
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(mybutton)
.38321104
>>> id(mybutton)
38321104
>>>
此外,字符串 .50109912
是按钮小部件的 window 路径名。 Window TCL 解释器在内部使用路径名来跟踪小部件及其父项。换句话说,它们是解释器为了到达特定的小部件而遵循的路径。
您还会注意到 50109912
与 winfo_name
方法返回的数字相同:
>>> mybutton.winfo_name()
'38321104'
>>>
但是请注意,winfo_name
仅 returns 小部件 window 路径名(其对象 ID)的最后部分。要获得完整路径,您需要通过执行 str(widget)
或 print(widget)
.
来调用 widget.__str__()
调用widget.__str__()
的文档可以通过help
找到:
>>> import tkinter
>>> help(tkinter.Button.__str__)
Help on function __str__ in module tkinter:
__str__(self)
Return the window path name of this widget.
>>>
此外,您可能对 Effbot 上的 Basic Widget Methods 页面感兴趣(特别是讨论 .winfo_*
方法的部分)。它包含有关如何获取小部件 window 路径名的特定部分的信息。
另外,如果你想要对象的Python表示,你可以使用repr
:
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(repr(mybutton))
<tkinter.Button object at 0x0248BBD0>
>>>
import tkinter as tk
root = tk.Tk()
button = tk.Button(root)
frame = tk.Frame(root)
subframe = tk.Frame(frame)
label = tk.Label(subframe)
for widget in (root, button, frame, subframe, label):
print('{:<8} id {:<20} str {!s:30} '.format(type(widget).__name__, id(widget), widget))
产量
Tk id 140490446651632 str .
Button id 140490446651744 str .140490446651744
Frame id 140490446651688 str .140490446651688
Frame id 140490417530808 str .140490446651688.140490417530808
Label id 140490417531368 str .140490446651688.140490417530808.140490417531368
如您所见,小部件的 str
是根小部件的 .
,是子小部件的点分隔的 id
数字序列。 ID 编号的顺序显示了小部件的沿袭。
我想知道 .xxxxxx
(例如 .50109912
)在 Python Tkinter 中的含义是什么。我试图检查 Widget_name(container, **configuration options).pack()
编辑的 return 是什么
当然它会 return None
但是当我在打包之前检查小部件 return 编辑了什么时,它给出了这样的东西 .50109912
。这就是我在 IDLE Python3.3.
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(mybutton)
.50109912
数字50109912
是按钮小部件的唯一Python对象ID:
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(mybutton)
.38321104
>>> id(mybutton)
38321104
>>>
此外,字符串 .50109912
是按钮小部件的 window 路径名。 Window TCL 解释器在内部使用路径名来跟踪小部件及其父项。换句话说,它们是解释器为了到达特定的小部件而遵循的路径。
您还会注意到 50109912
与 winfo_name
方法返回的数字相同:
>>> mybutton.winfo_name()
'38321104'
>>>
但是请注意,winfo_name
仅 returns 小部件 window 路径名(其对象 ID)的最后部分。要获得完整路径,您需要通过执行 str(widget)
或 print(widget)
.
widget.__str__()
调用widget.__str__()
的文档可以通过help
找到:
>>> import tkinter
>>> help(tkinter.Button.__str__)
Help on function __str__ in module tkinter:
__str__(self)
Return the window path name of this widget.
>>>
此外,您可能对 Effbot 上的 Basic Widget Methods 页面感兴趣(特别是讨论 .winfo_*
方法的部分)。它包含有关如何获取小部件 window 路径名的特定部分的信息。
另外,如果你想要对象的Python表示,你可以使用repr
:
>>> from tkinter import *
>>> root = Tk()
>>> mybutton = Button(root, text="Click Me", command=root.destroy)
>>> print(repr(mybutton))
<tkinter.Button object at 0x0248BBD0>
>>>
import tkinter as tk
root = tk.Tk()
button = tk.Button(root)
frame = tk.Frame(root)
subframe = tk.Frame(frame)
label = tk.Label(subframe)
for widget in (root, button, frame, subframe, label):
print('{:<8} id {:<20} str {!s:30} '.format(type(widget).__name__, id(widget), widget))
产量
Tk id 140490446651632 str .
Button id 140490446651744 str .140490446651744
Frame id 140490446651688 str .140490446651688
Frame id 140490417530808 str .140490446651688.140490417530808
Label id 140490417531368 str .140490446651688.140490417530808.140490417531368
如您所见,小部件的 str
是根小部件的 .
,是子小部件的点分隔的 id
数字序列。 ID 编号的顺序显示了小部件的沿袭。