- 简介
在学习PyQt6过程中,遇到设计一个BMI得计算器,主要通过身高、体重来实现自动计算IBM值,并展示结果。
开发环境搭建可以参照pyqt环境搭建。 - 实现方法
1)打开Qt Designer 工具
2)界面设计

拖拽“身高(cm)”、“体重(kg)”、“您的计算结果”、“BMI结果”、“提示”为Label框
拖拽“计算BMI”为Push Button
拖拽输入框“请输入身高”和“请输入体重”
3)布局
水平布局和格栅布局自己设置美观就可以。 - 设置参数
身高输入框将objesctName设置为lineEdit_height
属性编辑器中,QLineEdit的placeholderText设置为“请输入身高”

体重输入框objectName设置为“lineEdit weight”

属性编辑器中,QLineEdit的placeholderText设置为“请输入体重”

计算BMI按钮的objectName设置为“BmiCompute”

结果输出框objectName设置为“label_result”

设计完后,将文件另存为UI文件;打开pycharm工具,将保存的UI文件转换成python文件

会生成和UI保存文件名相同的.py文件。

在同级文件目录下,新建主函数文件“bmi_compute_main.py”,也可以自己命名

bmi_compute_main.py源码
import sys
from PyQt6.QtWidgets import QApplication,QDialog,QMessageBox
import bmi_compute
class MyBmiCompute(bmi_compute.Ui_Form, QDialog):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.BmiCompute.clicked.connect(self.compute_bmi)
def compute_bmi(self):
height = self.lineEdit_height.text()
try:
height = float(height)/100
except:
QMessageBox.warning(self,"信息提示","您输入得身高不正确,请重新输入")
return
weitht = self.lineEdit_weight.text()
try:
weitht = float(weitht)
except:
QMessageBox.warning(self,"信息提示","您输入得体重不正确,请重新输入")
return
BMI = round(weitht / (height ** 2), 2)
if (BMI < 18) :
self.label_result.setText('情况说明:' + str(BMI) +"偏瘦")
elif BMI >= 18 and BMI < 25 :
self.label_result.setText('情况说明:' + str(BMI) + "正常")
elif BMI >= 25 and BMI < 27:
self.label_result.setText('情况说明:' + str(BMI) + "超重")
elif BMI < 27:
self.label_result.setText('情况说明:' + str(BMI) + "肥胖")
if __name__ == '__main__':
app=QApplication(sys.argv)
window = MyBmiCompute()
window.show()
sys.exit(app.exec())
- 呈现效果
bmi_compute_main.py文件写好后,测试运行,弹出主窗口



总结,写主程序的时候,需要注意调用的类名称及函数名是否和UI转换的py文件对应,否则会出现调用错误或不存在。在需要修改UI文件的时候,一定要改完保存,然后再次转换。