我正在尝试使用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:
答案 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()
。这就是全部了。