我目前正在使用下面的代码,但是每当我尝试点击calcButt按钮时,它都没有做任何事情。什么似乎是问题 - 我做错了什么? 我一个月前才开始编写python,所以我对此非常陌生。 我希望你们能帮助我:)。
from tkinter import *
import Calculations
root = Tk()
# ***** function - is in an imported document *****
def calc_kJ(Protein, Carbs, Fat):
protein = Protein * 17
carbs = Carbs * 17
fat = Fat * 37
return protein + carbs + fat
# ***** Labels and inputs *****
proteinLabel = Label(root, text="Protein in gram:")
carbsLabel = Label(root, text="Carbs in gram:")
fatLabel = Label(root, text="Fat in gram:")
proteinInput = Entry(root)
carbsInput = Entry(root)
fatInput = Entry(root)
calcButt = Button(text="Calculate amount of kJ", command=Calculations.calc_kJ(Protein=proteinInput.get(), Carbs=carbsInput.get(), Fat=fatInput.get()))
# ***** Grid layout *****
proteinLabel.grid(row=0, sticky=W)
carbsLabel.grid(row=1, sticky=W)
fatLabel.grid(row=2, sticky=W)
proteinInput.grid(row=0,column=1)
carbsInput.grid(row=1, column=1)
fatInput.grid(row=2, column=1)
calcButt.grid(row=3, columnspan=2)
root.mainloop()
答案 0 :(得分:0)
你期待发生什么? calc_kJ
返回的值需要去哪里?
编写代码的方式,按钮的命令是calc_kJ
返回的值,而不是对函数的调用。
您将需要一个将值从Entry框传递到calc_kJ
函数的函数,并使用返回的值执行相应的操作。类似的东西:
def calc():
kJ = calc_kJ(Protein=int(proteinInput.get()), Carbs=int(carbsInput.get()), Fat=int(fatInput.get()))
calcButt.config(text=str(kJ)+" kJ")
如您所见,此函数首先从条目中获取值,转换为整数,然后将它们传递给calc_kJ
进行计算。然后,返回的值将作为按钮的文本。要使用此功能,您必须使用command=calc
配置按钮。