首页 > 解决方案 > 如何使用组合框制作 if 语句

问题描述

带有 Combobox 的 If 语句

我正在制作使用 GUI 计算 BMI 的应用程序,并且我为选择性别(男性、女性、儿童)制作了组合框,并且您知道 BMI 结果(肥胖或体重不足......)在男性、女性和儿童之间会有所不同所以我想当用户选择性别时......如果选择的性别是男性将打印正常(18-25)并且当用户选择性别是孩子时正常是(14-18)等等......请帮我做那...我的代码是用python写的 谢谢!

from tkinter import *
import tkinter as tk
from tkinter import ttk



class App(Tk):
    def __init__(self):
        self.window = Tk()
        self.window.title ("BMI")

        self.label = Label(self.window, text="Enter your wight (kg) ").pack()
        self.kg= StringVar()
        Entry(self.window, textvariable=self.kg).pack()


        self.label = Label (self.window, text="Enter your hight (m)").pack ()
        self.m= StringVar ()
        Entry (self.window, textvariable=self.m).pack ()

        self.label = Label (self.window, text="Enter your Gender ").pack ()
        self.g= StringVar ()


        usertype = tk.StringVar()
        self.combo = ttk.Combobox(self.window,state='readonly',values= 
        ['male','Female','child']).pack()
        self.gender = StringVar()

        self.age = StringVar ()
        self.label = Label (self.window, text="Enter your age ").pack ()
        self.spin=Spinbox(self.window, from_=0, to=100).pack ()


        self.buttontext = StringVar()
        Button(self.window, textvariable=self.buttontext, 
        command=self.calculate).pack()
        self.buttontext.set("Calculate")


        self.bmi_num = StringVar()
        Label(self.window, textvariable=self.bmi_num).pack()

        self.bmi_text = StringVar()
        Label(self.window, textvariable=self.bmi_text).pack()


        self.window.mainloop()

    def calculate(self):

        weight=(self.kg.get())
        weight=float(weight)
        hight=(self.m.get())
        hight=float(hight)
        Gender=(self.g.get())
        age=(self.age.get())
        bmi=float((weight)/float(hight**2))
        self.bmi_num.set("Your BMI is %.2f" % bmi)
        if self.g.get()=="Man":
            if bmi < 18.5:
                self.bmi_text.set ("You are underweight")
            if 18.5 <= bmi < 25:
                self.bmi_text.set ("You are normal")
            if 25 <= bmi < 30:
                self.bmi_text.set ("You are overweight")
            if 30 <= bmi > 30:
                self.bmi_text.set ("You are obese")



App()

标签: pythonif-statementuser-interfacecombobox

解决方案


推荐阅读