运行界面截图如下:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(630, 416)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.label = QtWidgets.QLabel(self.centralWidget)
self.label.setGeometry(QtCore.QRect(60, 60, 54, 12))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralWidget)
self.label_2.setGeometry(QtCore.QRect(60, 110, 54, 12))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralWidget)
self.label_3.setGeometry(QtCore.QRect(120, 60, 54, 12))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralWidget)
self.label_4.setGeometry(QtCore.QRect(120, 110, 54, 12))
self.label_4.setObjectName("label_3")
self.height_lineEdit = QtWidgets.QLineEdit(self.centralWidget)
self.height_lineEdit.setGeometry(QtCore.QRect(150, 60, 113, 20))
self.height_lineEdit.setObjectName("height_lineEdit")
self.weight_lineEdit = QtWidgets.QLineEdit(self.centralWidget)
self.weight_lineEdit.setGeometry(QtCore.QRect(150, 110, 113, 20))
# self.weight_lineEdit.setEchoMode(QtWidgets.QLineEdit.Password)
self.weight_lineEdit.setObjectName("weight_lineEdit")
self.btn = QtWidgets.QPushButton(self.centralWidget)
self.btn.setGeometry(QtCore.QRect(150, 230, 75, 23))
self.btn.setObjectName("btn")
self.msg_plainTextEdit = QtWidgets.QPlainTextEdit(self.centralWidget)
self.msg_plainTextEdit.setGeometry(QtCore.QRect(380, 60, 211, 171))
self.msg_plainTextEdit.setObjectName("msg_plainTextEdit")
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 630, 23))
self.menuBar.setObjectName("menuBar")
self.menuPyQt5 = QtWidgets.QMenu(self.menuBar)
self.menuPyQt5.setObjectName("menuPyQt5")
self.menupython3 = QtWidgets.QMenu(self.menuBar)
self.menupython3.setObjectName("menupython3")
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QtWidgets.QToolBar(MainWindow)
self.mainToolBar.setObjectName("mainToolBar")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
self.statusBar = QtWidgets.QStatusBar(MainWindow)
self.statusBar.setObjectName("statusBar")
MainWindow.setStatusBar(self.statusBar)
self.actionlist = QtWidgets.QAction(MainWindow)
self.actionlist.setObjectName("actionlist")
self.actionlis2 = QtWidgets.QAction(MainWindow)
self.actionlis2.setObjectName("actionlis2")
self.actionlist3 = QtWidgets.QAction(MainWindow)
self.actionlist3.setObjectName("actionlist3")
self.menupython3.addSeparator()
self.menupython3.addAction(self.actionlist)
self.menupython3.addAction(self.actionlis2)
self.menupython3.addAction(self.actionlist3)
self.menuBar.addAction(self.menuPyQt5.menuAction())
self.menuBar.addAction(self.menupython3.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "BMI"))
self.label.setText(_translate("MainWindow", "height:"))
self.label_2.setText(_translate("MainWindow", "weight:"))
self.label_3.setText(_translate("MainWindow", "(m)"))
self.label_4.setText(_translate("MainWindow", "(kg)"))
self.btn.setText(_translate("MainWindow", "calculate"))
self.menuPyQt5.setTitle(_translate("MainWindow", "PyQt5"))
self.menupython3.setTitle(_translate("MainWindow", "BMI"))
self.actionlist.setText(_translate("MainWindow", "list"))
self.actionlis2.setText(_translate("MainWindow", "lis2"))
self.actionlist3.setText(_translate("MainWindow", "list3"))
def button_clicked_event():
global mainwindow_ui
height = float(mainwindow_ui.height_lineEdit.text())
weight = float(mainwindow_ui.weight_lineEdit.text())
BMI = round(weight / (height * height), 2)
srtReport = "BMI is " + str(BMI) + ","
if BMI < 18.5:
srtReport = srtReport + "Below\n"
elif BMI >= 18.5 and BMI < 24:
srtReport = srtReport + "Normal\n"
elif BMI > 24:
srtReport = srtReport + "over weight\n"
mainwindow_ui.msg_plainTextEdit.setPlainText(str(srtReport))
if __name__ == '__main__':
app = QApplication(sys.argv)
mainwindow_ui = Ui_MainWindow()
qMainWindow = QMainWindow()
mainwindow_ui.setupUi(qMainWindow)
mainwindow_ui.btn.clicked.connect(button_clicked_event)
qMainWindow.show()
sys.exit(app.exec_())