PyQt5 关于Qt Designer的初步应用和打包

  • 1. 缘由
  • 2. 搭建
    • 2.1. 安装
    • 2.2. 打开
    • 2.3. 设计
    • 2.4. 转换
  • 3. 效果
    • 3.1. 引用
    • 3.2. 启动
    • 3.3. 打包
    • 3.4. 触发

机器人开发之路总会有很多的艰难险阻,但虽然辛苦,还是选择了那种滚烫的人生。
很幸运,获得了机器人开发领域优质创作者身份认证。
征途漫漫,惟有奋斗,共勉!


1. 缘由

开发过程中,难免需要自己手动开发一些交互工具
简单的如自动化脚本
复杂一点的呢就是带界面交互的应用软件了

QT呢就是一款很受欢迎的图形用户界面应用程序开发框架
只宠Python的搬运工,就需要Python和Qt库融合的工具,它就是 PyQt5

在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成
其实现了视图和逻辑的分离,从而实现了开发的便捷


2. 搭建


2.1. 安装

若未安装pyqt5,则需先安装:

$ pip3 install pyqt5

然后安装常用工具:

$ pip3 install pyqt5-tools pyinstaller

pyqt5和pyinstaller有版本对应关系,推荐同时期安装,如果版本偏差,会导致pyinstaller打包一直失败。


2.2. 打开

找到 Qt Designer 应用程序启动文件,
这边的地址是对应Python目录下的 \Lib\site-packages\qt5_applications\Qt\bin\designer.exe


可以添加桌面快捷方式方便后续打开

打开 designer.exe


创建新的Form给出了5个模板,但实际上只有3种不同类型的模板,分别是Dialog、Main Window和Widget

  • Main Window 主界面
    一个窗口是父/子的顶部,通常显示标题栏和边框。
    底层窗口系统(Windows、KDE、GNOME等)将为窗口提供策略,如标题栏/边框样式、布局和焦点等。
  • Widget 小部件
    屏幕上的一个矩形区域,用于显示和用户交互,包括按钮、滑块、视图、对话框和窗口等。
    所有窗口小部件将在屏幕上显示某些内容,许多窗口小部件也将接受来自键盘或鼠标的用户输入。
  • Dialog 对话框
    通常是临时的,可以设置不同的标题栏外观,主要用于通知或收集输入窗口,并且底部或右侧通常具有OK、Cancel等按钮。

这里选择创建一个Main Window

在QT Designer界面里分为5个区域,正中间区域是软件设计的界面,左右两侧是功能区域,功能区域的说明如下:

  • Widget Box:控件区,软件的功能控件都在此区域生成,可以拉拽控件到模板上实现可视化软件设计。
  • 对象查看器:软件的目录结构,显示模板中所有控件的类型,能帮助设计者快速找到控件。
  • 属性编辑器:控件属性区,主要修改控件的属性。
  • 信号/槽编辑器:对象间的通信机制。如单击按钮(信号 Signal)时候所触发的事件(槽 Slot)。

2.3. 设计

拉拽个按钮控件,并保存为csdn.ui


2.4. 转换

打开刚刚保存的ui文件,可以发现其实也就是XML文件


现在需要通过工具转换成py文件

$ pyuic5  源文件.ui -o 目标文件.py

即:

$ pyuic5  .\csdn.ui -o .\csdn.py

推荐作为py脚本,方便后续或批量转换


3. 效果


3.1. 引用

创建一个逻辑文件logic.py

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from csdn import Ui_MainWindowclass MyWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MyWindow, self).__init__()self.setupUi(self)if __name__ == '__main__':app = QApplication(sys.argv)myWin = MyWindow()myWin.show()sys.exit(app.exec_())

通过上述代码,继承了Ui_MainWindow类,使用其构造方法构造主窗口
并定义了程序的入口,通过创建QApplication对象来创建Qt窗口


3.2. 启动

启动logic.py文件


3.3. 打包

可以通过pyinstaller进行打包

  • 普通

    $ pyinstaller -w  logic.py
    

    在dist文件夹内生成工程文件夹 logic,寻找logic.exe文件启动

  • 整合

    $ pyinstaller -F -w  logic.py
    

    在dist文件夹内生成logic.exe整合文件,点击启动(启动较久)

  • 配置信息
    在执行以上两种打包时候,会产生.spec配置文件,可以通过调整配置文件执行打包

    $ pyinstaller logic.spec
    

3.4. 触发

使用connect()方法将信号与槽函数绑定在一起
当信号发射时,连接槽函数将会自动执行

如把点击pushButton按钮作为一个信号

class MyWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MyWindow, self).__init__()self.setupUi(self)# 将pushButton信号与槽函数touch_button绑定self.pushButton.clicked.connect(self.touch_button)def touch_button(self):print('点击按钮了')

此时点击按钮,可看到终端显示提示了


谢谢

PyQt5 关于Qt Designer的初步应用和打包相关推荐

  1. pyqt5 tableview 设置行颜色_Tools Ⅰ:如何用 PyQt5 和 Qt Designer 在 Pycharm 中愉快地开发软件...

    本文使用 Zhihu On VSCode 创作并发布 转载自 两个轮子 的 CSDN https://blog.csdn.net/qq_40666028/article/details/8106987 ...

  2. 【PyQt5】QT designer + eclipse 集成开发

    [写在前面的话] 考虑将pyqt5的界面开发qt designer 集成在eclipse中,并且,不利用cmd命令行进行转换. [工具] 1.pyqt5 2.qt designer 3.eclipse ...

  3. PyQT5 之 Qt Designer 介绍与入门

    From:https://www.jianshu.com/p/5b063c5745d0 养薛定谔的猫 简书:https://www.jianshu.com/u/bf82b363ae88 Qt Desi ...

  4. pyqt5 getsavefilename 默认文件名_经Jerry编程小课堂之python如何安装PyQt5和QT Designer...

    小伙伴们大家好,欢迎来到经Jerry编程小课堂,有没有很想我呢?嘿嘿嘿,我也很想你们啊!想死你们了,亲!嘤嘤嘤! 哈哈,话不多说,转入正题,今天我们聊一聊如何安装python的图形界面模块PyQt5以 ...

  5. create和qypt qt_Win10安装PyQt5与Qt Designer

    1.直接在cmd中通过pip安装PyQt5 1 pip install pyqt5 会自动下载PyQt5以及sip并安装,因为PyQt5不再提供Qt Designer等工具,所以需要再安装pyqt5- ...

  6. PyQT5 之 Qt Designer 介绍

    PyQT5简介 pyqt5是一套Python绑定Digia QT5应用的框架.它可用于Python 2和3.本教程使用Python 3.Qt库是最强大的GUI库之一.pyqt5的官方网站http:// ...

  7. PyQt5 技术篇 - Qt Designer怎么用styleSheet设置按钮的背景

    本来想做个悬浮窗来着,设置按钮背景的时候卡住了,到底该怎么设置呢? 其实,就是点按钮,然后在 styleSheet 里加个 background-color,但是你却发现展示的出来的按钮背景一点都没变 ...

  8. PyQt5学习笔记02----初探Qt Designer 设计师

    网上很多教程都是纯代码,对于新手看起来就很头疼,pyqt为我们提供了Qt designer来设计窗口界面,用起来也非常方便.对于新手来说应该善用它,虽然做出来的界面不那么华丽,但至少可以做出个像样的窗 ...

  9. 使用Qt Designer和Qss设计Qt界面

    开发界面其实一点都不比写后台逻辑简单,后台逻辑对需求方来说只有能用和不能用,但是界面没有一个确切的标准说好看还是不好看,所以设计出一个大家都说好的界面真的很难. 我们的业务是服务于内部用户的,其实大家 ...

最新文章

  1. 免高考!2021清华北大保送名单公布,五大学科竞赛260人获保送资格
  2. 不使用框架的web项目中配置log4j
  3. Flash as3 以鼠标点为中心缩放效果
  4. 使用技巧_Lodash 使用技巧
  5. 通过配置文件启动odoo-10.0
  6. .NET Core 实现基于Websocket的在线聊天室
  7. 前端学习(3035):vue+element今日头条管理-关于问题的一个解析
  8. 7.2版本中安装的插件都是本插件未被启用???
  9. 前端开发响应式布局和移动端布局有哪些特点和区别?
  10. 转ubuntu下中文乱码解决方案(全)
  11. 一条SQL的奇妙旅行
  12. 潘正磊: 做最好、最美的你
  13. 爬虫笔记1-Requests库的基本方法
  14. php 带$字符处理,thinkphp中的特殊字符处理
  15. java反编译 mac_java反编译工具Mac版-jd-gui for Mac下载 V1.6.6-PC6苹果网
  16. 申请ios证书并发布uniapp软件
  17. LTE网络架构的简单概述
  18. 用java实现九九乘法表的打印
  19. 在64位win7上面卸载IE8
  20. 数据库Mysql:存储过程(PROCEDURE )函数(FUNCTION)

热门文章

  1. Android书页翻页设计:android-flip
  2. mysql示例employees数据库
  3. WCF并存Asp.net
  4. Base 6 FAQ v8
  5. F#简明教程二:F#类型系统和类型推断机制
  6. ASP静态HTML(局部)生成类
  7. 离子量子计算机 寻址,量子计算机的硬件进展
  8. SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
  9. MSChart BarChart
  10. C语言的inline