如何获得输入并在计算后给出输出

时间:2016-07-06 09:38:49

标签: python

我是python的初学者,我试图制作一个BMI计算器 但我输入和输出有一些问题

我想从self.Heighttypeself.Weighttype获取输入,并在self.BMI

处输出

还有一些简单的编码技巧?

from tkinter import *
import tkinter.messagebox

root = Tk()  
root.resizable(0,0)

class win1:
    def __init__(self, master):
        self.master = master
        master.title("BMI Calculator")
        #
        self.he = IntVar()
        self.we = IntVar()
        self.height = Label(master, text="ENTER Your Height(cm) Here:")
        self.Heighttype = Entry(master, textvariable=self.he) #here
        self.weight = Label(master,text="ENTER Your Weight(kg) Here:")
        self.Weighttype = Entry(master, textvariable=self.we) #and here
        #
        self.ans = IntVar()
        self.BMI = Label(master, textvariable=self.ans) #output here
        self.credit = Button(master, text="Credit", command=self.credit_show)
        self.result = Button(master, text="Result", command=self.calculation)
        root.protocol('WM_DELETE_WINDOW', self.ask_quit) 
        self.close = Button(master, text="Close", command=self.ask_quit)

        self.height.grid(sticky=E, padx=2, pady=4)
        self.Heighttype.grid(row=0, column=1, columnspan=2, padx=2)
        self.weight.grid(sticky=E, padx=2, pady=4)
        self.Weighttype.grid(row=1, column=1, columnspan=2, padx=2)
        self.BMI.grid(row=2, column=1, columnspan=2, padx=2)
        self.credit.grid(row=3, sticky=W, padx=4 , pady=4)
        self.result.grid(row=3, column=1, pady=4, sticky=W+E, padx=4)
        self.close.grid(row=3, column=2, pady=4, sticky=W+E, padx=1)

    def calculation(self):
        # i want to get the user input from top and make calculation
        # and make a output self.BMI = Label


    def credit_show(self):
        tkinter.messagebox.showinfo("Credit","Created by BlackLotus")
    def ask_quit(self):
        if tkinter.messagebox.askokcancel("Quit", "Do you want to Quit?"):
            root.destroy()

apps = win1(root)
root.mainloop()

请有人帮助我。非常感谢。

1 个答案:

答案 0 :(得分:0)

.get()上使用.set()IntVar获取参数并设置结果:

def calculation(self):
    m = self.we.get()
    l = self.he.get()
    bmi =   # calculate the bmi here
    self.ans.set(bmi)

此外,虽然它似乎也适用于IntVar,但使ans成为DoubleVar似乎更合理,即:

    self.ans = DoubleVar()