的整数如何获得来自Tkinter的Entry
部件的整数类型?获得从条目
如果我试图让使用variable_name.get()
值时,它说,这是一个str
。如果我尝试使用int(variable_name.get())
更改类型,则表示int只能接受字符串或数字。
任何帮助将受到欢迎!
的整数如何获得来自Tkinter的Entry
部件的整数类型?获得从条目
如果我试图让使用variable_name.get()
值时,它说,这是一个str
。如果我尝试使用int(variable_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应该回报你一个字符串。
Tkinter的入口有一个默认的文本值,如果不是整数的数据可能是一个问题。
当你在你的问题中说“变量”时,你指的是StringVar
的实例还是对小部件本身的引用?
如果你有到窗口小部件的引用,您可以使用条目的get
方法。这将返回一个字符串,然后可以传递给int
功能:
s = e.get()
i = int(s)
如果这不能解决你的问题,你可以提供一些工作代码,准确显示您所遇到的问题?
我碰到了同样的问题最近。我有一个小方法运行:
newSave = self.EntryDict[key].get
try:
int(newSave)
bool = True
except ValueError:
bool = False
而我得到了错误,你正在描述它只能接受一个字符串或数字。 而我的问题是,我的.get没有括号。在我把.get()一切工作之后。我认为这可能也是你的问题。但没有看到你的任何代码,我无法确定。
我是Tkinter的新手,也面临同样的问题。我认为问题是Entry字段的默认值是一个空字符串,不能转换为整数。
我建议你尝试添加一个if语句来检查的话:
if variable.get() != '':
other_variable = int(variable.get())
据我所知,这个问题是旧的,但这个工作对我来说,我想我会分享。
此代码不安全。如果@int()@转换失败,则需要捕获可能的@ ValueError @异常。 – rbaleksandar 2017-07-20 05:18:30
最后我只是初始化变量tk.IntVar()
,而不是tk.StringVar()
这样,你不必强制转换为一个int,它永远是一个,从输入元素的默认值将现在是0
而不是''
这就是我走近它,无论如何,似乎最简单的方法,避免了很多你需要不这样做验证的需要...
int(str(variable.get()))
我试试这个,现在它工作。
欢迎来到StackOverflow。你是否可以更加精确地回答这个问题,为什么在提问6,5年后回答这个问题并且回答了这个问题?如果您对问题有新的认识,您的答案将会很有意思,例如当你的解决方案特定于更新版本的'TkInter'时。最后,为了视觉上的原因,用反引号来包围你的代码 – 2017-04-20 19:32:51
变量的值是多少? – pyfunc 2010-11-16 21:44:32
你能看到str(variable.get())的值吗?虽然这应该是不必要的,因为v.get应该返回一个字符串。 – pyfunc 2010-11-16 21:58:16
如果'variable'是一个'StringVar','int(variable.get())'应该可以工作。你得到什么'print repr(variable.get())'还有'print type(variable.get())'? – 2010-11-16 22:01:05