Tkinter 条目小部件浮点数
Tkinter Entry widget float number
我正在制作一个 BMI 计算器,只是为了了解 tkinter。我被困在这一部分上了——我该怎么做才能从条目小部件中获取一个浮点数?
这是我的一些代码片段
获取条目输入(这是在一个名为 calculateBMI 的函数中)
hgtval = float(height.get())
wgtval = float(weight.get())
这里是创建变量和制作输入框。
hgt = StringVar()
wgt = StringVar()
height = Entry(root, stringvariable=hgt).grid(row=1, column=2)
weight = Entry(root, stringvariable=wgt).grid(row=2, column=2)
运行整个程序我报错:
C:\Python34\python.exe I:/programming/project/bmi.py
Traceback (most recent call last):
File "I:/programming/project/bmi.py", line 35, in <module>
height = Entry(root, stringvariable=hgt).grid(row=1, column=2)
File "C:\Python34\lib\tkinter\__init__.py", line 2478, in __init__
Widget.__init__(self, master, 'entry', cnf, kw)
File "C:\Python34\lib\tkinter\__init__.py", line 2086, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: unknown option "-stringvariable"
选项是textvariable
,不是stringvariable
。
与此问题无关,当您执行 height = Entry(...).grid(...)
时,height
将始终是 None
,因为这就是 .grid(...)
returns。最好的做法是将小部件创建与小部件布局分开。
当您这样做(将创建与布局分开)时,您实际上不需要使用 StringVar
s,因为您可以直接从小部件本身获取值(例如:hgtval = float(height.get())
我正在制作一个 BMI 计算器,只是为了了解 tkinter。我被困在这一部分上了——我该怎么做才能从条目小部件中获取一个浮点数?
这是我的一些代码片段
获取条目输入(这是在一个名为 calculateBMI 的函数中)
hgtval = float(height.get())
wgtval = float(weight.get())
这里是创建变量和制作输入框。
hgt = StringVar()
wgt = StringVar()
height = Entry(root, stringvariable=hgt).grid(row=1, column=2)
weight = Entry(root, stringvariable=wgt).grid(row=2, column=2)
运行整个程序我报错:
C:\Python34\python.exe I:/programming/project/bmi.py
Traceback (most recent call last):
File "I:/programming/project/bmi.py", line 35, in <module>
height = Entry(root, stringvariable=hgt).grid(row=1, column=2)
File "C:\Python34\lib\tkinter\__init__.py", line 2478, in __init__
Widget.__init__(self, master, 'entry', cnf, kw)
File "C:\Python34\lib\tkinter\__init__.py", line 2086, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: unknown option "-stringvariable"
选项是textvariable
,不是stringvariable
。
与此问题无关,当您执行 height = Entry(...).grid(...)
时,height
将始终是 None
,因为这就是 .grid(...)
returns。最好的做法是将小部件创建与小部件布局分开。
当您这样做(将创建与布局分开)时,您实际上不需要使用 StringVar
s,因为您可以直接从小部件本身获取值(例如:hgtval = float(height.get())