2015-07-18 54 views
-1

我正在製作一個BMI計算器只是爲了讓我的腦袋繞過tkinter。我被困在這一部分 - 我該如何做到這一點,所以它從入口小部件獲得浮點數?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" 
+0

這應該是'textvariable'不'stringvariable'。See [here](http://effbot.org/tkinterbook/entry.htm)。 –

+0

http://effbot.org/tkinterbook/entry.htm –

回答

1

的選項textvariable,不stringvariable

無關的這個問題,當你做height = Entry(...).grid(...)height永遠是None,因爲這是.grid(...)回報。將小部件創建與小部件佈局分開是最佳做法。

當你這樣做(分離佈局創建),你實際上並不需要使用StringVar S,因爲你可以從窗口小部件本身直接獲得的價值(如:hgtval = float(height.get())