Python+Pycharm+PyQT5可视化程序设计入门!

一个优秀的程序必须要有友好的可视化交互界面GUI。Python有很多GUI开发的框架,像我之前常用的是自带的Tkinter,对于一些小功能不复杂的程序是绰绰有余的,但对于功能稍微复杂,还是希望找到更简便快捷的GUI设计框架。PyQt是QT的Python版本,现在最新的版本已经是PyQt5,是Python的GUI设计之中应用较为广泛的开发框架。本文将基于广泛应用的Pycharm,搭建PyQT5的开发环境。

使用的软件版本:

  • Python 3.6
  • PyCharm Community Edition 2019.3.1 x64

1.安装PyQt模块

首先需要安装模块PyQt5

pip install pyqt5

PyQt5不再提供QtDesigner等工具,需要再安装模块pyqt5-tools

pip install pyqt5-tools

2. 在Pycharm中配置PyQt5的开发环境

需要在Pycharm中配置PyQt5的开发环境,采用的是添加外部工具的方法来实现,需要添加两个外部工具,一个是QtDesinger,用于界面设计,另一个是PyUIC,用于编译UI文件编程py文件。

打开Pycharm——File——Settings——Tools——External Tools,点击+号,按照如下设置外部工具:

2.1 配置QtDesinger

需要填写的说明:

Name:QtDesinger

Program:C:\Program Files\Python36\Lib\site-packages\PyQt5-tools\designer\designer.exe

Working directory:$ProjectFileDir$

意思是该外部工具定义名称为QtDesinger,外部工具的地址需要自己手动选择,一般为在Python的安装路径中,最后的Working directory设置为当前项目工作目录即可,即创建的UI文件会存储在目录下。

2.2 配置PyUIC

Name:PyUIC

Program:C:\Program Files\Python36\Scripts\pyuic5.exe

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

Working directory:$ProjectFileDir$

意思是该外部工具定义名称为PyUIC,外部工具的地址需要自己手动选择,一般为在Python的安装路径中,Arguments的意思是会把UI文件转成同名的py文件,最后的Working directory设置为当前项目工作目录即可。

配置完成后,在Pycharm的Tools——External Tools,可以看到刚才配置菜单:

打开QtDesinger,即能看到GUI设计界面:

3. 基本使用

使用QtDesinger,设计一个计算器界面,最后保存该文件名为PyQT_Form,此时该文件应该是xml的通用格式,文件名后缀为ui。

返回Pycharm界面,右键PyQT_Form.ui,弹出的菜单中选择External Tools——PyUIC,PyQT_Form.ui即编译成PyQT_Form.py。

但此时该界面py文件还不能运行,本着界面设计类和逻辑实现类代码分离的原则,需要写一个主运行的py文件,命名为main_run.py,可以参考如下:

#!/usr/bin/env python3# -*- coding: UTF-8 -*-import sysfrom PyQt5.QtWidgets import QApplication, QMainWindowfrom PyQT_Form import Ui_MainWindowclass MyWindow(QMainWindow, Ui_MainWindow):    def __init__(self, parent=None):        super(MyWindow, self).__init__(parent)        self.setupUi(self)if __name__ == '__main__':    app = QApplication(sys.argv)    myWin = MyWindow()    myWin.show()    sys.exit(app.exec_())

main_run.py中继承了PyQT_Form.py的Ui_MainWindow类,同时又可以添加一些逻辑实现的代码,真正实现界面和逻辑实现的代码分析,后续修改界面,也不影响主程序的运行。

私信源码加群:850591259

猜你喜欢

转载自www.cnblogs.com/Py1233/p/12653242.html