Python tkinter调用tk.canvas.create_window()时什么是窗口

Python tkinter调用tk.canvas.create_window()时什么是窗口,python,user-interface,tkinter,Python,User Interface,Tkinter,我在理解此函数的功能时遇到了一些困难: canvas.创建窗口(0,0,anchor='nw',window=frame) 由于通常app=tkinter.Tk()给出了一种tkinter.Tk类型,并且是窗口实例中的一个窗口和处理程序,因此create\u window创建了什么 从这段代码来看,create\u window似乎将一个Tkinter.Frame挂接到窗口中,create\u window的返回类型是int。您可以将一个框架放在画布中,那么为什么要创建\u window呢?返回

我在理解此函数的功能时遇到了一些困难:

canvas.创建窗口(0,0,anchor='nw',window=frame)

由于通常
app=tkinter.Tk()
给出了一种tkinter.Tk类型,并且是窗口实例中的一个窗口和处理程序,因此create\u window创建了什么

从这段代码来看,create\u window似乎将一个Tkinter.Frame挂接到窗口中,create\u window的返回类型是int。您可以将一个框架放在画布中,那么为什么要创建\u window呢?返回的int有什么意义吗

创建窗口创建什么

它创建一个画布对象,类似于直线、矩形、图像等。与直线或矩形类似,此画布对象具有定义其外观的属性。对于窗口对象,其中一个属性是
window
,它指定要显示为对象的小部件

你可以把一个框架放在画布上,那么为什么要创建一个窗口呢

如果使用
pack
place
grid
在画布中添加框架,它将显示在画布中,但不会成为画布的一部分。这意味着,如果将滚动条附加到画布,框架将不会滚动。通过使用
create\u window
,框架成为画布的一部分,可以像任何其他画布对象一样进行操作和滚动

返回的int有什么意义吗


调用
create\u window
返回的值是一个整数索引,以后可用于引用此对象

CuraTyWindows创建空白画布。阅读这是否意味着有2个窗口?一个窗口是app=tk.tk(),另一个窗口是canvas.create_窗口(frame),它将一个框架放在画布上,并将该画布中的其他小部件重新排序到框架上。还是更容易忽略函数名称“CuraTyWindows”,而只是将其视为对现有窗口进行重新排序的一种方式。如果有多个创建窗口,会发生什么情况?@placidchat:这取决于你所说的“窗口”是什么意思。在您的场景中,只有一个窗口——Tk实例。在该窗口中是一个画布小部件,并且在该画布小部件中放置一个框架小部件。因此,您只有一个窗口(Tk),但有三个小部件(Tk、画布、框架)。@placidchat:我不知道您所说的“将画布中的所有其他小部件重新排序到框架上”是什么意思-没有“重新排序”在进行。如果有多个
create\u窗口
,会发生什么情况?如果创建三个框架,画布上会有三个单独的对象。但是,您不能在多个
create\u window
调用中使用相同的
窗口。