Python 可以同时创建和放置tkinter小部件吗?
我是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中保留对每个小部件的引用。这种方法没有错,我已经见过很多次
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对象,它只是打包小部件,您将无法访问它以供以后使用。哪个“上一个”答案?答案可以在不同的时间以不同的顺序出现。你能更具体一点吗?公平点,编辑。但我认为单是时间戳就说明了这一点。哪一个“先前”答案?答案可以在不同的时间以不同的顺序出现。你能更具体一点吗?公平点,编辑。但我认为单是时间戳就说明了这一点。当你说“如果我不需要改变它们”,你(大部分)回答了你自己的问题……当你说“如果我不需要改变它们”,你(大部分)回答了你自己的问题…