这是我的全部代码:
import sys
import tkinter as tk
import os
def bowlingspeedcalc ():
if type(mEntry) == float:
speed = 0.01890*3600/mEntry
if speed >165:
tk.Label (str(speed) + " kph !!! You don't bowl that fast!!!o_0 ").place (x = 50,y = 50)
elif speed >=140:
tk.Label ("You are a fast bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 130:
tk.Label ("You are a fast-medium bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 120:
tk.Label ("You are a medium-fast bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed >= 105:
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:
tk.Label ("You are a spin bowler,you bowl at: " + str(speed) + " kilometers per hour").place (x = 50,y = 50)
elif speed <= 60:
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]
bowlingspeedcalc ()
for widget in widgets:
widget.place_forget ()
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)
这是我的所有代码...一个mbutton的命令转到forget_page
,它转到bowlingspeedcalc
但是当程序执行时,它在新页面上没有显示任何内容???任何帮助将不胜感激....:D
答案 0 :(得分:0)
您的代码调用bowlingspeedcalc
,它会尝试创建一些小部件。在下一行中,您有一个循环来从屏幕上删除所有小部件。
此外,bowlingspeedcalc
的第一行将mEntry
的类型与float进行比较,这将始终失败。 mEntry
是一个小部件,而不是一个数字。如果要获取用户输入的数据,则必须调用该窗口小部件的get
方法。这将始终返回一个字符串,因此您需要将其转换为数字。