This is the wholeof my code:
这是我的全部代码:
import sys
import tkinter as tk
import os
def bowlingspeedcalc ():
entry = float(mEntry)
if type(entry) == float:
speed = 0.01890*3600/entry
if speed >165:
Label1 = tk.Label (str(speed) + " kph !!! You don't bowl that fast!!!o_0 ").place (x = 50,y = 50)
elif speed >=140:
Label2 = tk.Label ("You are a fast bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 130:
Label3 = tk.Label ("You are a fast-medium bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 120:
Label4 = tk.Label ("You are a medium-fast bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 105:
Label5 = tk.Label ("You are a medium pace bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed < 105 and speed > 60:
Label6 = tk.Label ("You are a spin bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed <= 60:
Label7 = tk.Label ("You bowl at: " + str(speed) + " kilometers per hour; you bowl like my grandma!!!").place (x = 50,y = 50)
def forget_page ():
widgets = [mlabel1,mlabel2,mlabel3,mEntry,mButton]
for widget in widgets:
widget.place_forget ()
bowlingspeedcalc ()
mGui = tk.Tk()
mGui.geometry("300x300")
mGui.title("YourBowlingSpeed")
mlabel1 = tk.Label (text = "How much time does your ball take to cover the")
mlabel2 = tk.Label (text = "20m/22yrds ,from the release to crossing ")
mlabel3 = tk.Label (text = "the stumps?")
mlabel1.place (x = 20,y = 5)
mlabel2.place (x = 17,y = 22)
mlabel3.place (x = 130,y = 39)
mEntry = tk.Entry()
mEntry.place (x = 115,y = 56)
mButton = tk.Button (text = "Calculate",command = forget_page)
mButton.place (x = 125, y = 73)
mGui.mainloop()
This is my code i know what the problem is but i don't know how to solve it . a command goes to bowlingspeedcalc () and there the probem starts nohing comes on .Thats because mEntry can't be converted to a float but is there a way i can convert mEntry to a the float value the user enters? Any help would me appreciated !
这是我的代码,我知道问题是什么,但我不知道如何解决它。一个命令转到bowlingspeedcalc()并且在那里探测器开始出现nohing.Thats因为mEntry无法转换为浮点数但是有没有办法可以将mEntry转换为用户输入的浮点值?任何帮助我都会感激!
This is the error message:
这是错误消息:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Python33\Projects\YourBowlingSpeed.py", line 36, in forget_page
bowlingspeedcalc ()
File "C:\Python33\Projects\YourBowlingSpeed.py", line 7, in bowlingspeedcalc
entry = float(mEntry)
TypeError: float() argument must be a string or a number
1 个解决方案
#1
0
Use mEntry.get()
to obtain the text provided by the user. So, the first line of bowlingspeedcalc
should be:
使用mEntry.get()获取用户提供的文本。所以,bowlingspeedcalc的第一行应该是:
entry= float(mEntry.get())
Also, I'm not sure how you are making mEntry
visible to bowlingspeedcalc
. It could be formatting of your post. Or you could be in need of a global
.
另外,我不确定你是如何使碗状物看到mEntry可见的。它可能是您的帖子的格式。或者你可能需要全球化。
#1
0
Use mEntry.get()
to obtain the text provided by the user. So, the first line of bowlingspeedcalc
should be:
使用mEntry.get()获取用户提供的文本。所以,bowlingspeedcalc的第一行应该是:
entry= float(mEntry.get())
Also, I'm not sure how you are making mEntry
visible to bowlingspeedcalc
. It could be formatting of your post. Or you could be in need of a global
.
另外,我不确定你是如何使碗状物看到mEntry可见的。它可能是您的帖子的格式。或者你可能需要全球化。