从条目中获取整数

时间:2010-11-16 21:41:49

标签: python tkinter

如何从Tkinter Entry小部件中获取整数类型?

如果我尝试使用variable_name.get()获取值,则表示它是str。如果我尝试使用int(variable_name.get())更改类型,则表示int只能接受字符串或数字。

欢迎任何帮助!

6 个答案:

答案 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()))

我试试这个,它现在有效。