我正在与Tkinter一起制作用户界面。 我不了解“主”和“根”之间的区别。
我在这里找到了一些信息:Python interface to Tcl/Tk¶
要访问包含给定窗口小部件的顶层窗口,通常可以仅参考窗口小部件的主窗口。当然,如果将小部件包装在框架中,则母版将不会代表顶层窗口。要进入包含任意窗口小部件的顶层窗口,可以调用_root()方法。此方法以下划线开头,表示该功能是实现的一部分,而不是Tk功能的接口。
但是我还是不明白。因此,我做了一些代码,但是在获得的结果(***)中看不到任何差异。
使用“大师”
from tkinter import *
master = Tk() ***
Canvas = Canvas(master) ***
Canvas.pack()
def create_circle(x, y, r, canvas):
x0 = x - r
y0 = y - r
x1 = x + r
y1 = y + r
return canvas.create_oval(x0, y0, x1, y1)
create_circle(100, 100, 20, Canvas)
master.mainloop() ***
使用“根”
from tkinter import *
root = Tk() ***
Canvas = Canvas(root) ***
Canvas.pack()
def create_circle(x, y, r, canvas):
x0 = x - r
y0 = y - r
x1 = x + r
y1 = y + r
return canvas.create_oval(x0, y0, x1, y1)
create_circle(100, 100, 20, Canvas)
root.mainloop() ***
答案 0 :(得分:1)
我正在与Tkinter一起制作用户界面。我不了解“主”和“根”之间的区别。
没有区别。它只是一个名字,您可以随便叫它。
由于tkinter小部件存在于以单个小部件为根的树中,因此root
是此小部件的正式名称。因此,root
已成为用于访问此小部件的变量的最常用名称。但是,您可以随意给它命名,因为该名称只是给您带来方便。 Tkinter不在乎你怎么称呼它。
Tkinter文档有时也指主人和奴隶,有时也指父母和孩子。除根窗口外,所有小部件都具有主窗口(或父窗口)。此术语通常在几何管理器pack
,place
和grid
的上下文中使用,作为描述如何将一个小部件放入另一个小部件的方式。
答案 1 :(得分:0)
我会谨慎使用master,见下文;)
这是整个故事。...https://mail.python.org/pipermail/tutor/2010-June/076444.html
from tkinter import *
root = Tk()
Canvas = Canvas(root)
print(dir(Canvas.master))
Canvas.pack()
def create_circle(x, y, r, canvas):
x0 = x - r
y0 = y - r
x1 = x + r
y1 = y + r
return canvas.create_oval(x0, y0, x1, y1)
create_circle(100, 100, 20, Canvas)
root.mainloop()