python tkinter entry命令无法转换为int [英] python tkinter entry command can't convert to int
问题描述
试图习惯tkinter gui,但是设置输入框时遇到了问题.我想制作一个简单的数字猜测程序,使用Entry输入一个整数和一个按钮来提交猜测.使用int(GuessBox.get())时遇到str转换为int的错误,我不确定该怎么办.
Trying to get used to the tkinter gui but I'm running into a problem with setting up an input box. I wanted to make a simple number guessing program using Entry to input an integer and a button to submit the guess. I'm getting an str to int conversion error when I use int(GuessBox.get()) and I'm not sure what to do.
ValueError:以10为底的int()的无效文字:
ValueError: invalid literal for int() with base 10: ''
来自tkinter导入的
from tkinter import *
import random
def makeAGuess():
guess = int(GuessBox.get())
print(guess)
if guess == Answer:
print("you got it!")
return False
elif guess > Answer:
print("Too High, try again")
return True
else :
print("Too low, try again")
return True
Answer = random.randint(1, 100)
main = Tk()
label = Label(main, text = "Guess a number")
label.pack()
GuessBox = Entry(master = main)
GuessBox.pack()
submitGuess = Button(master = main, text = "Submit Guess", command = makeAGuess())
submitGuess.pack()
main.mainloop()
推荐答案
您需要将函数作为对象传递,不要调用它.
You need to pass the function as an object, don't call it.
submitGuess = Button( master = main, text = "Submit Guess", command = makeAGuess )
否则,在创建Button时会调用makeAGuess,但不会传递任何参数.进行此更改后,您的代码将非常适合我.
Otherwise makeAGuess is called when the Button is created, but not passed any arguments. With this change your code works perfectly for me.
这篇关于python tkinter entry命令无法转换为int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!