为什么我不能将字符串从条目小部件转换为浮动?

时间:2014-05-25 23:59:59

标签: python string user-interface tkinter

我正在尝试使用tkinter构建一个简单的程序,我想将用户输入的值分配为一个浮点变量,而不是一个字符串。 这是我的代码:

from tkinter import *

root = Tk()

x_entry = Entry(root)
x_entry.pack()
x_string=x_entry.get()

def enter_click(event):
    x=float(x_string)
    print(x)

enter_button = Button(root, text="Enter")
enter_button.pack()
enter_button.bind("<Button-1>", enter_click)
enter_button.bind("<Return>", enter_click)

root.mainloop()

出于某种原因,Python一直给我以下错误,说它无法将字符串转换为float,即使我输入简单的数字:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1482, in __call__
    return self.func(*args)
  File "C:/Users/isstudio/Desktop/example.py", line 10, in enter_click
    x=float(x_string)
ValueError: could not convert string to float: 

1 个答案:

答案 0 :(得分:3)

修改为:

from Tkinter import *


def enter_click(event):
    x=float(x_entry.get())
    print(x)

root = Tk()

x_entry = Entry(root)
x_entry.pack()


enter_button = Button(root, text="Enter")
enter_button.pack()
enter_button.bind("<Button-1>", enter_click)
enter_button.bind("<Return>", enter_click)

root.mainloop()

您希望在点击事件中从窗口中读取字符串,因此除x_string=x_entry.get()函数内的行enter_click(event)仍然无效。因此,我将x=float(x_string)替换为x=float(x_entry.get())并删除x_string=x_entry.get()。这就是全部了。