学习Python界面程序设计(PyQt5)的最佳指南

     通过Qt_Designer设计ui界面,配合python可以很容易设计出自己想要的界面程序,下面详细介绍下通过此方法设计一款简单的BMI(身体质量指数)计算软件。

     先来看下程序运行效果:

                                       

                                       

                                        

具体设计方法和步骤:

1.安装相关工具包

1)安装PyQt5
      pip install PyQt5 -i https://pypi.douban.com/simple 
      [也可安装PyQt6,或者PySide2、PySide6,其中PyQt是第三方公司的产品,而PySide才是QT公司的产品,PyQt因发布的早使用者更多,但后续PySide可能发展会更好(毕竟亲儿子),不过两者在使用上各模块基本一致,对学习来说没有任何影响。]

2)安装PyQt5-tools

     pip install PyQt5-tools -i https://pypi.douban.com/simple 
     如果只使用Qt-designer,也可以单独下载Qt-designer软件。

3)安装PyCharm(当然也可以选择其它编译工具)

     在PyCharm中添加Qt-designer工具,这样的话在设置程序的时候可以更方便的修改UI界面。
     首先打开pycharm“文件”->"设置"

                                               

进入“工具”->“外部工具”,点击左上角“+”,弹出“创建工具”界面,在“名称”栏输入“Qt-Designer”,在程序栏输入Qt-Designer程序所在路径(PyQt5-tools安装的话,路径一般在python目录下的“site-packages\PyQt5-tools目录下”,如果找不到可以用“Everything”软件搜索,比windows自带的好用),在工作目录栏输入“$FileDir$”,“确定”完成。

点击PyCharm工具栏,看到Qt->Qt_Designer说明添加成功,点击Qt_Designer可打开软件。

                                         

2.设计UI界面

   打开Qt_Designer,在新建类型中选择QWidget。

   1)在左边栏选择Label,拖动到设计框图中,分别输入“BMI计算工具”、“身高”、“体重”、“BMI”、“m”、“Kg”,在右侧属性栏中根据需要修改字体及大小,并进行适当排列。

   2)选择Line Edit,拖动到设计框图中,建立两个文本输入框,调整尺寸和位置,分别用于输入身高和体重信息。

   3)选择Text Browser,拖动到设计框图中,调整尺寸和位置,用于显示最终计算出的BMI信息。

   4)选择Push Button,拖动到设计框图中,建立一个按钮,在按钮上输入“计算”,调整尺寸和位置。

    完成后的UI界面大致如下。

   5)修改控键对象名。这步非常重要,选择新建的两个Line Edit框,在右侧属性编辑栏中找到“objectName”,分别修改对应的Value为“height_edit”和“weight_edit”(这个值相当于变量名,后续程序编写中要用到,可根据自己习惯来定义),同样将“Text Browser”和"Push Button"修改为“bmi_showtext”、“calc_button”,Label不需要作修改。

                                           

      设计好UI后,要对文件进行保存,保存文件为“.ui”格式,保存路径最好在对应的python工程文件下。

3.python程序设计(源码)

from PyQt5.QtWidgets import QApplication,QMessageBox
from PyQt5 import uic
import sys

class BmiCalc:
    def __init__(self):
        self.window = uic.loadUi('bmi_calc.ui')               #加载Qt_designer生成的ui文件,注意路径和文件名
        self.window.calc_button.clicked.connect(self.calc)    #clicked事件,表示单击鼠标左键;calc_button为ui中的按钮对象名,calc为点击后要执行的函数
        self.message = QMessageBox()                          #实例化信息框对象

    def calc(self):
        h = self.window.height_edit.text()                 #获取身高信息,返回数据为字符串
        w = self.window.weight_edit.text()                 #获取体重信息
        bmi = float(w)/float(h)**2                         #BMI计算
        #bmi数据判断
        if bmi < 18.5:
            string = '您的体型偏瘦!'
        elif 18.5 < bmi < 24:
            string = '您的体型正常!'
        else:
            string = '您的体型超重!'
        self.window.bmi_showtext.setText(str(round(bmi,2)))    #BMI数据显示
        self.message.about(self.window,'结论',string)           #弹出信息框

app = QApplication([])
bmi_calc = BmiCalc()             #实例化对象
bmi_calc.window.show()           #显示UI
sys.exit(app.exec())

    可以看到程序非常简单,代码不到30行。当然如果要更严谨,还需要对输入数据类型进行判断,以防止程序出错。

物联沃分享整理
物联沃-IOTWORD物联网 » 学习Python界面程序设计(PyQt5)的最佳指南

发表评论