当前位置: 首页 > article >正文

【Python】基于界面库PyQt5+Qt Dsigner的环境配置和界面绘制

目录

一 安装PyQt5以及PyQt5-tools

二 配置外部开发工具

三 使用Qt Designer设计界面

四 使用PyUIC将ui文件转换为py文件

五 CU分离实现逻辑代码


一 安装PyQt5以及PyQt5-tools

        之前做的一些Python脚本、软件都是基于 Tkinter 实现的,其中界面的设计布局是很头疼的事情,都得自己手动敲。了解到 PyQt5 + Qt Designer 可以通过可视化界面,拖拽控件的形式简单完成界面的设计,颇为心动,遂尝试使用。

【1】安装PyQt5

        通过命令行管道输入命令 pip install PyQt5。或者在Pycharm中搜索安装:

【2】安装PyQt5-tools

        通过命令行管道输入命令 pip install PyQt5-tools。或者在Pycharm中搜索安装:

二 配置外部开发工具

        进入 File→Settings→Tools→External Tools,点击+号,新建两个外部工具:QTDesigner 和 PyUIC:

【1】配置QTDesigner:

        其中:

Name:QTDesigner

Program:C:\Python38\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
                注意:该路径为Python安装路径Lib\site-packages\qt5_applications文件夹里

Working dirctory:C:\Python38\Lib\site-packages\qt5_applications\Qt\bin

                注意:$FileDir$ 亦可

【2】配置PyUIC:

        其中:

Name:PyUIC

Program:C:\Python38\Scripts\pyuic5.exe
                  注意:该路径为你Python安装路径下Scripts文件夹里

Arguments:$FileName$ -o $FileNameWithoutExtension$.py

Working dirctory:$FileDir$

三 使用Qt Designer设计界面

        配置完成之后,点击Tools→External Tools→QTDesinger,进入设计界面:

        在New Form对话框里选择Widget模板,然后点击创建:

        然后就会出现Qt Designer主界面,向Form中分别拖入一个“Push Button”和一个“Text Edit”,如下图:

        

        指定点击事件及其响应函数。工具栏点击对象图标:

        然后光标移动到“PushButton”按钮上,鼠标左键 点击 “PushButton”按钮 不要松开,拖动光标 到 按钮旁边的任一位置后 再松开鼠标左键,会出现一个类似接地的图标

        随后就出现了如下界面,在对话框左侧选中clicked()”,右侧点击“Edit”,配置连接如下:

        新增一个名为 pushButton_click() 的槽:

        保存并退出 QTDesinger。

四 使用PyUIC将ui文件转换为py文件

        Python并不能识别Qt Designer生成的.ui文件,需要使用外部工具PyUIC将其转换为.py文件:

        生成结束之后,同级目录下会出现一个同名的.py文件,这个文件就可以直接使用了:

五 CU分离实现逻辑代码

        运用CU分离的思想,将界面与业务逻辑分开实现。方法是新建一个.py文件程序(我这边直接用自动生成的main.py),在里边创建一个子类(My_Ui_Form)继承testUI.py中的Ui_Form。

优点1:实现逻辑清晰;
优点2:后续如果界面或者逻辑需要变更,好维护;

        代码如下:

"""
界面与业务逻辑分离实现:新建一个.py文件程序,在里边创建一个子类(My_Ui_Form)继承testUI.py中的Ui_Form
优点1:实现逻辑清晰;
优点2:后续如果界面或者逻辑需要变更,好维护;
"""
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QMainWindow
from testUI import Ui_Form

class My_Ui_Form(QWidget, Ui_Form):
    def __init__(self):
        super(My_Ui_Form, self).__init__()
        self.setupUi(self)

    def pushButton_click(self):
        self.textEdit.setText("你点击了按钮")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = My_Ui_Form()
    win.show()
    sys.exit(app.exec_())

        运行程序,点击界面中的按钮,可以在文本框内显示文字,结果如下:


http://www.kler.cn/a/453342.html

相关文章:

  • Three.js中调整相机视角的方式
  • 【conda】Ubuntu 24.04 安装CUDA 12.04
  • 【AIGC-ChatGPT进阶副业提示词】星际占卜师:探索星象能量的艺术【限时免费阅读,一天之后自动进入进阶课程】
  • js控制文字溢出显示省略号
  • Go快速开发框架2.6.0版本更新内容快速了解
  • Unity设置中文
  • MongoDB深度解析与实践案例
  • 解决PDF.js部署到IIS服务器上后报错mjs,.ftl 404 (Not Found)
  • 【Linux】编写简易shell 深度理解命令行解释器 环境变量 内建命令
  • 一、Hadoop概述
  • 南山企业保租房瑧山河周边转转
  • 运维相关知识科普
  • DeepSeek V3:新一代开源 AI 模型,多语言编程能力卓越
  • 关于JS中的this指向问题
  • Xdebug
  • vue固定页面高度不出现滚动条
  • 每天40分玩转Django:Django缓存
  • 【微服务】整合Nacos注册中心和动态配置
  • Linux系统之tee命令的基本使用
  • Java获取自身被调用点