Python tkinter中stringvar.get()和Entry.get之间的区别
在本规范中,以下各项的使用是否有任何区别: sv.get() 或使用:Python tkinter中stringvar.get()和Entry.get之间的区别,python,tkinter,Python,Tkinter,在本规范中,以下各项的使用是否有任何区别: sv.get() 或使用: sv = StringVar() ent = Entry(textvariable = sv) 我知道,这两者之间的差别不大: 一个区别是返回的值的类型,例如,如果使用StringVar()它的内部将是str,但是如果使用IntVar()它将只接受整数,如果不接受,它将在稍后尝试IntVar().get()时返回错误。当您使用ent.get()时,您将失去类型转换的优势,因为默认情况下它将始终是str,除非您稍后键入c
sv = StringVar()
ent = Entry(textvariable = sv)
我知道,这两者之间的差别不大:
- 一个区别是返回的值的类型,例如,如果使用
它的内部将是StringVar()
,但是如果使用str
它将只接受整数,如果不接受,它将在稍后尝试IntVar()
IntVar().get()时返回错误。当您使用
时,您将失去类型转换的优势,因为默认情况下它将始终是ent.get()
,除非您稍后键入castestr
- 接下来,如果您说
,它将返回ent=Entry(textvariable=sv).pack()
,因此您不能在其他地方使用None
,而可以使用ent.get()
。但这是推荐的吗?不可以。因为您不能使用其他几种sv.get()
方法,如输入
,insert()
等。相反,您必须使用delete()
和sv.set('Hello World')
分别插入和删除sv.set(“”)
- 我认为没有必要将
与StringVar()
小部件一起使用,除非它真的很重要(默认情况下,它的Entry
),它只需要与str
和其他类似的组小部件一起使用Combobox
- 但最重要的是,请记住(
和ent.get()
都将返回相同的输出,只有当您希望基于输入的输入设置限制时,才可以使用sv.get()
,但其验证性仍然不强IntVar()
- 一个优点是,您可以通过使用tkinter变量(如
,BooleanVar
(小数),DoubleVar
,IntVar
)来跟踪对它们所做的更改StringVar
- 它的使用取决于代码的用途。对于您所包含的简单示例,不必使用
StringVar
- 我通常不会在我的
小部件上使用Entry
或任何tkinter变量,除非我想用它执行一些特定的操作,比如StringVar
或其他什么trace()
干杯我知道,这两者之间的差别不大:
- 一个区别是返回的值的类型,例如,如果您使用
它的内部将是StringVar()
,但是如果您使用str
它将只接受整数,如果不接受,它将在稍后尝试IntVar()
它们时返回错误。当您使用IntVar().get()
,你就失去了这种类型转换的优势,因为默认情况下它总是ent.get()时
,除非你以后输入castestr
- 接下来,如果您说
,它将返回ent=Entry(textvariable=sv).pack()
,因此您不能在其他地方使用None
,但是您可以使用ent.get()
。但是建议这样做吗?不,因为您不能使用其他几种sv.get()
方法,例如Entry
、insert()
等等。相反,您必须使用delete()
和sv.set('Hello World')
分别插入和删除sv.set('')
- 我认为没有必要将
与StringVar()
小部件一起使用,除非它真的很重要(默认情况下,它的Entry
),它只需要与str
和其他类似的组小部件一起使用Combobox
- 但最重要的是,请记住(
和ent.get()
都将返回相同的输出,只有当您希望基于输入的输入设置限制时,才可以使用sv.get()
,但其验证性仍然不强IntVar()
- 一个优点是,您可以通过使用tkinter变量(如
,BooleanVar
(小数),DoubleVar
,IntVar
)来跟踪对它们所做的更改StringVar
- 它的使用取决于代码的用途。对于您所包含的简单示例,不必使用
StringVar
- 我通常不会在我的
小部件上使用Entry
或任何tkinter变量,除非我想用它执行一些特定的操作,比如StringVar
或其他什么trace()
Cheers任何一种方法都会返回条目小部件中的值。使用
StringVar
和变量
选项时唯一的显著区别是,您还有一个需要管理的对象
StringVar
和其他tkinter变量类具有附加功能,例如能够在值更改时调用函数。如果不使用该功能,我建议不要将其中一个变量与条目
小部件关联。如果不使用这些功能,则会增加开销和sma这两种方法都返回条目小部件中的值。使用StringVar
和variable
选项的唯一显著区别是,您还有一个需要管理的对象
StringVar
和其他tkinter变量类具有附加功能,例如能够在值更改时调用函数。如果不使用该功能,建议不要将其中一个变量与
ent.get()