PyCharm不打印结果

时间:2014-09-28 17:11:53

标签: tkinter tkinter-entry

我目前正在使用下面的代码,但是每当我尝试点击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()

1 个答案:

答案 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配置按钮。