Python 可以同时创建和放置tkinter小部件吗?

Python 可以同时创建和放置tkinter小部件吗?,python,tkinter,Python,Tkinter,我是Python和tkinter的新手,所以这个问题可能看起来很幼稚:如果我不需要更改小部件,那么可以同时创建和放置它们吗? 这很有效,但这是一个好的做法吗?如果不是,为什么 我的意思的一个例子: import tkinter as tk window=tk.Tk() tk.Label(window,text='Lost Label').pack() window.mainloop() 这种方法没有错,我已经见过好几次了。您不必在GUI中保留对每个小部件的引用。这种方法没有错,我已经见过很多次

我是Python和tkinter的新手,所以这个问题可能看起来很幼稚:如果我不需要更改小部件,那么可以同时创建和放置它们吗? 这很有效,但这是一个好的做法吗?如果不是,为什么

我的意思的一个例子:

import tkinter as tk
window=tk.Tk()
tk.Label(window,text='Lost Label').pack()
window.mainloop()

这种方法没有错,我已经见过好几次了。您不必在GUI中保留对每个小部件的引用。

这种方法没有错,我已经见过很多次了。您不必保留对GUI中每个小部件的引用。

要扩展@Skynet的

每当您执行
Widget(*args,**kwargs).pack()
时,
pack()
方法会像其他几何图形管理器一样返回
None
,因此,如果您尝试将该变量分配给变量,则该变量将是
None

在这种情况下,可能不会,因为您可能实际上想要存储对小部件的引用

如果你不需要推荐人,那就没什么问题了。正如其他答案所指出的,除非您计划以某种方式使用此引用,否则您不需要对GUI中的每个小部件进行定义性引用。除非我计划以某种方式更改标签文本/修改它,否则我通常使用您的方法来节省一些空间。不需要写更多的代码

扩展@Skynet的

每当您执行
Widget(*args,**kwargs).pack()
时,
pack()
方法会像其他几何图形管理器一样返回
None
,因此,如果您尝试将该变量分配给变量,则该变量将是
None

在这种情况下,可能不会,因为您可能实际上想要存储对小部件的引用


如果你不需要推荐人,那就没什么问题了。正如其他答案所指出的,除非您计划以某种方式使用此引用,否则您不需要对GUI中的每个小部件进行定义性引用。除非我计划以某种方式更改标签文本/修改它,否则我通常使用您的方法来节省一些空间。不需要写更多的代码

例如,您正在创建一个
按钮
小部件

btn = Button(blabla, text="Button1")
这将返回一个按钮对象,如果以后需要配置它或获取有关它的信息,可以通过
btn
变量执行。 但是如果您使用类似于
btn=Button(blablabla,text=“Button1”).pack()
的东西,它将返回
None
而不是Button对象,因此您将无法更改有关按钮的任何内容或稍后获取有关它的信息

另一个例子是
条目
小部件

entry = Entry(blabla)
稍后使用它,您可以执行
entry.get()
以获取条目中的文本
但是如果您使用
entry=entry(blabla).pack()
则无法执行此操作,因为它不返回entry对象,所以它只是打包小部件,您将无法访问它以供以后使用。

例如,您正在创建一个
按钮
小部件

btn = Button(blabla, text="Button1")
这将返回一个按钮对象,如果以后需要配置它或获取有关它的信息,可以通过
btn
变量执行。 但是如果您使用类似于
btn=Button(blablabla,text=“Button1”).pack()
的东西,它将返回
None
而不是Button对象,因此您将无法更改有关按钮的任何内容或稍后获取有关它的信息

另一个例子是
条目
小部件

entry = Entry(blabla)
稍后使用它,您可以执行
entry.get()
以获取条目中的文本
但是如果您使用
entry=entry(blabla).pack()
则无法执行此操作,因为它不返回entry对象,它只是打包小部件,您将无法访问它以供以后使用。

哪个“上一个”答案?答案可以在不同的时间以不同的顺序出现。你能更具体一点吗?公平点,编辑。但我认为单是时间戳就说明了这一点。哪一个“先前”答案?答案可以在不同的时间以不同的顺序出现。你能更具体一点吗?公平点,编辑。但我认为单是时间戳就说明了这一点。当你说“如果我不需要改变它们”,你(大部分)回答了你自己的问题……当你说“如果我不需要改变它们”,你(大部分)回答了你自己的问题…