如何从Tkinter Entry
小部件中获取整数类型?
如果我尝试使用variable_name.get()
获取值,则表示它是str
。如果我尝试使用int(variable_name.get())
更改类型,则表示int只能接受字符串或数字。
欢迎任何帮助!
答案 0 :(得分:4)
最后,我将变量初始化为tk.IntVar()
而不是tk.StringVar()
这样你就不必把它作为int转换,它总是一个,而Entry元素的默认值现在是0
而不是''
无论如何,这就是我接近它的方式,这似乎是最简单的方法,并且避免了你需要进行大量验证的需要......
答案 1 :(得分:1)
请参阅Tkinter的以下示例:
v = StringVar()
e = Entry(master, textvariable=v)
e.pack()
v.set("a default value")
s = v.get()
v是一个StringVar类。尝试做 - int(str(variable.get()))
但是该类说变量.get应该返回一个字符串。
Tkinter Entry具有默认文本值,如果它不是整数数据,则可能会出现问题。
答案 2 :(得分:1)
我最近遇到了同样的问题。我有一个小方法在运行:
newSave = self.EntryDict[key].get
try:
int(newSave)
bool = True
except ValueError:
bool = False
我得到了你所描述的错误,它只能接受字符串或数字。 我的问题是我的.get没有括号。在我把.get()之后一切正常。我想这可能也是你的问题。但是没有看到你的任何代码我无法确定。
答案 3 :(得分:1)
我也是Tkinter的新手,我也遇到了同样的问题。我认为问题是Entry字段的默认值是一个空字符串,不能转换为整数。
我建议您尝试添加if语句来检查该情况:
if variable.get() != '':
other_variable = int(variable.get())
我知道这个问题很老,但这对我有用,我想我会分享。
答案 4 :(得分:0)
当您在问题中说“变量”时,您指的是StringVar
的实例或对小部件本身的引用吗?
如果您有对小部件的引用,则可以使用条目的get
方法。这将返回一个字符串,然后您可以将其传递给int
函数:
s = e.get()
i = int(s)
如果这不能解决您的问题,您是否可以提供一些能够准确显示您遇到的问题的工作代码?
答案 5 :(得分:0)
int(str(variable.get()))
我试试这个,它现在有效。