python tkinter entry命令无法转换为int [英] python tkinter entry command can't convert to int

查看:71
本文介绍了python tkinter entry命令无法转换为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆