使用 tkinter 时,"root" 和 "master" 的结果相同。那么,什么时候使用每一个呢?



我正在与TKINTER合作制作用户界面。我不明白"主"one_answers" root"之间的区别。

我在这里找到了一些信息:python接口到tcl/tk¶

要在包含给定的小部件的Toplevel窗口中获取,您通常可以参考小部件的主人。当然,如果小部件已在框架内部包装,则主人将不会代表高级窗口。要在包含任意小部件的Toplevel窗口中获取,您可以调用_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()   ***

使用" root"

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()   ***

我正在与TKINTER合作制作用户界面。我不明白"主"one_answers" root"之间的区别。

没有区别。这只是一个名字,您可以随心所欲地称其为称呼。

由于tkinter窗口小部件存在于其单个小部件作为根部的树中,因此 root是该小部件的官方名称。因此,root已成为用于访问该小部件的变量的最常见名称。但是,您可以随意给它任何想要的名字,因为名称只是您的便利。tkinter不在乎你叫什么。

tkinter文档有时也指师父和奴隶,有时是父母和孩子。除根窗口外,所有小部件都有主人(或父)。该术语主要用于几何经理packplacegrid的上下文,以描述如何将一个小部件放入另一个小部件。

我只是小心地使用主人,请参见下文;)

在这里整个故事.... https://mail.python.org/pipermail/tutor/2010--------------------44.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()

相关内容

最新更新