Python 从输入中获取整数
如何从TkinterPython 从输入中获取整数,python,tkinter,Python,Tkinter,如何从Tkinter条目小部件获取整数类型 如果我尝试使用variable\u name.get()获取值,它会说它是一个str。如果我尝试使用int(variable\u name.get())更改类型,它会说int只能接受字符串或数字 欢迎任何帮助 参见Tkinter的以下示例: v = StringVar() e = Entry(master, textvariable=v) e.pack() v.set("a default value") s = v.get() v是一个Strin
条目
小部件获取整数类型
如果我尝试使用variable\u name.get()
获取值,它会说它是一个str
。如果我尝试使用int(variable\u name.get())
更改类型,它会说int只能接受字符串或数字
欢迎任何帮助 参见Tkinter的以下示例:
v = StringVar()
e = Entry(master, textvariable=v)
e.pack()
v.set("a default value")
s = v.get()
v是一个StringVar类。尝试执行-int(str(variable.get()))
但是类说variable.get应该返回一个字符串
StringVar的实例还是指小部件本身
如果您有对小部件的引用,则可以使用条目的get
方法。这将返回一个字符串,然后可以将该字符串传递给int
函数:
s = e.get()
i = int(s)
如果这不能解决您的问题,您能否提供一些工作代码来准确显示您遇到的问题?我最近遇到了同样的问题。我运行了一个小方法:
newSave = self.EntryDict[key].get
try:
int(newSave)
bool = True
except ValueError:
bool = False
我得到了您描述的错误,它只能接受字符串或数字。
我的问题是,我的.get没有括号。在我投入之后,让一切都运转起来。我想这可能也是你的问题。但是没有看到您的任何代码,我不能确定。我也是Tkinter的新手,我也面临着同样的问题。我认为问题在于输入字段的默认值是空字符串,不能转换为整数
我建议您尝试添加一个if语句来检查该情况:
if variable.get() != '':
other_variable = int(variable.get())
我知道这个问题很老,但这对我来说很有用,我想我应该分享一下。最后我只是将变量初始化为tk.IntVar()
,而不是tk.StringVar()
这样,您就不必将其强制转换为int,它将始终是一,并且Entry元素的默认值现在将是0
,而不是'
不管怎样,我就是这样做的,这似乎是最简单的方法,避免了你需要做的大量验证
int(str(variable.get()))
我尝试了这个方法,现在就可以了。变量的值是多少?您能看到str(variable.get())的值吗?虽然这应该是不必要的,因为v.get应该返回一个字符串。int(variable.get())
如果variable
是StringVar
,则应该可以使用。对于打印报告(variable.get())
和打印类型(variable.get()),您可以得到什么?欢迎使用StackOverflow。你能更准确地解释一下,为什么在被问到这个问题6,5年后,当它被回答时,你还要回答这个问题?如果您的答案能为问题提供一些新的见解,例如,当您的解决方案特定于较新版本的TkInter
时,您的答案将非常有趣。最后,为了视觉上的原因,请在代码周围加上背景标记。此代码不安全。如果@int()@转换失败,您需要捕获可能的@ValueError@异常。