写点什么

Python 第三方模块:PyQt5 简介

作者:指剑
  • 2022-11-30
    重庆
  • 本文字数:1570 字

    阅读完需:约 5 分钟

项目/需求实战中碰到的问题

在前段时间,有一个项目需要分析用户的情绪,我马上想到的就是使用 python3+AWS Comprehend+AWS Lambda+AWS ApiGateway 来做这么一个情绪分析软件,在实际设计的时候,令我最烦恼的就是图形化的设计,反复考虑后还是打算使用 PyQt5 来设计图形化界面

第三方模块(PyQt5)介绍

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


pyqt5 做为 Python 的一个模块,它有 620 多个类和 6000 个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括 UNIX,Windows,Mac OS。pyqt5 是双重许可。开发者可以在 GPL 和商业许可之间进行选择。

推荐理由

  1. 模块使用方法简单,上手快

  2. 采用可视化界面拖拽设计程序的图形化界面

  3. 可用模块自动生成代码

PyQt5 速度上手实战(python3.9+Pycharm)

安装 PyQt5 和 PyQt5-tools


pip install PyQt5pip install PyQt5-tools
复制代码



查看 Designer 和 PyUic 位置




将 designer 和 Pyuic 添加到 PyCharm 中


Name:可自己定义program:Qt Designer的安装路径parameter:不填directory: $FileDir$
复制代码



Name:可自己定义program:pyuic的安装路径parameter:$FileName$ -o $FileNameWithoutExtension$.pydirectory: $FileDir $
复制代码



测试打开 QtDesigner




拖拽创建图形化界面,设计完成保存



使用 PyUic 进行转换,转换成功后为 .py 文件




例如:创建一个 demo 并演示:按下按钮--文本框中显示文字


# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Demo.ui'## Created by: PyQt5 UI code generator 5.15.4## WARNING: Any manual changes made to this file will be lost when pyuic5 is# run again. Do not edit this file unless you know what you are doing.
import sysfrom PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(500, 422) self.textEdit = QtWidgets.QTextEdit(Form) self.textEdit.setGeometry(QtCore.QRect(130, 80, 261, 51)) self.textEdit.setObjectName("textEdit") self.pushButton = QtWidgets.QPushButton(Form) self.pushButton.setGeometry(QtCore.QRect(210, 180, 93, 28)) self.pushButton.setObjectName("pushButton") #这里来调用下面定义的函数 self.pushButton.clicked.connect(self.demo_run) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.pushButton.setText(_translate("Form", "PushButton"))
def demo_run(self): put_words = self.textEdit.setText("你做得很好,这是一个演示")

if __name__=="__main__": app=QtWidgets.QApplication(sys.argv) widget=QtWidgets.QMainWindow() widget.setFixedSize(widget.width(), widget.height()-80) #禁止最大化 ui=Ui_Form() ui.setupUi(widget) widget.showMaximized() sys.exit(app.exec_())
复制代码


演示如下


同类型模块推荐

Tkinter

Python 官方采用的标准库,优点是开源、稳定,发布程序较小,缺点是控件相对较少。

wxPython

基于 wxWidgets,优点是开源、控件比较丰富,缺点是稳定性相对差点,文档少,用户少。

总结+思路扩展

示例:该第三方模块可以应用到 python 应用图形化设计场景,其图形化设计和代码转换可加快开发者的速度,其缺点也很明显,缺点是库比较大,发布出来的程序比较大


发布于: 刚刚阅读数: 3
用户头像

指剑

关注

InfoQ签约作者 2022-07-13 加入

AWS社区建设者,AWS学生大使,微软学生大使,阿里云签约作者,Info Q签约作者,CSDN博客专家,华为云云享专家

评论

发布
暂无评论
Python第三方模块:PyQt5简介_Python_指剑_InfoQ写作社区