【发布时间】:2019-03-25 03:24:56
【问题描述】:
我正在尝试使用带有 Python 的 GUI 来创建一个带有整数输入的简单函数。
我对 GUI 概念真的很陌生,所以我不知道还能做什么。
from tkinter import *
root = Tk()
peopleText = Label(root, text="How many people are in your household? ")
wageText = Label(root, text="How much do you make a month before deductions? ")
peopleInput = Entry(root)
wageInput = Entry(root)
runButton = Button(root, text="Run")
peopleText.grid(row=1, column=0)
wageText.grid(row=2, column=0)
peopleInput.grid(row=1, column=1)
wageInput.grid(row=2, column=1)
def runProcess():
incomeSNAP = int(peopleInput.get()) - 1
incomeHousing = int(peopleInput.get()) - 1
if int(wageInput.get()) <= incomeSNAP:
print("Yes")
else:
print("No")
if int(wageInput.get()) <= incomeHousing:
print("Yes")
else:
print("No")
runButton = Button(root, text="Run")
runButton.bind('<Button_1>', runProcess())
runButton.pack()
root.mainloop()
我希望会弹出一个窗口,但出现此错误:
File "/Users/noahpark/PycharmProjects/pythonProject/gui.py", line 21, in runProcess
incomeSNAP = int(peopleInput.get()) - 1
ValueError: invalid literal for int() with base 10: ''
【问题讨论】:
-
还有很多问题需要处理,但是对于你的具体错误,需要去掉
runButton.bind('<Button_1>', runProcess())上的(),因为你需要提供函数的引用。传递runProcesss()将立即执行该函数。也应该是<Button-1>。 -
您要查找的神奇关键字是
try和except。
标签: python user-interface