一、安装PyQt5和qtdesigner
1.安装pyqt5,使用镜像比较快些
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5
2.安装qtdesigner
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5-tools
二、pycharm中配置pyqt5
1.添加qtdesigner
file–>setting–>tools–>external tools添加
Name:自己定义
program:Qt Designer的安装路径
例如我安装的路径:E:\SoftwareDevelopmentTools\anaconda3\envs\PyTorch1.5.1\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
directory: $FileDir$ 根据自己的工作目录选择
2.添加pyuic,可以把.ui文件转为.py文件
file–>setting–>tools–>external tools添加
Name:自己定义
program:pyuic的安装路径
例如我的安装路径:E:\SoftwareDevelopmentTools\anaconda3\envs\PyTorch1.5.1\Scripts\pyuic5.exe
parameter:$FileName$ -o $FileNameWithoutExtension$.py 输出命令
directory: $FileDir$ 自己的工作目录
- 添加pyrcc,可以将.rc文件转为.py文件
file–>setting–>tools–>external tools添加
Name:自己定义
program:pyrcc的安装路径
例如我的路径:E:\SoftwareDevelopmentTools\anaconda3\envs\PyTorch1.5.1\Scripts\pyrcc5.exe
parameter:$FileName$ -o $FileNameWithoutExtension$.py
directory: $FileDir$ 自己的工作目录
4.测试
鼠标右击,选择`New->External Tools->QT Designer
右击.ui文件选择pyuic转为.py文件
测试代码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'pyqttest.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# 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.
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(210, 300, 93, 28))
self.pushButton.setObjectName("pushButton")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(90, 90, 231, 131))
self.groupBox.setObjectName("groupBox")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.groupBox.setTitle(_translate("MainWindow", "GroupBox"))
class MyMainForm(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainForm, self).__init__(parent)
self.setupUi(self)
if __name__ == "__main__":
#固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
app = QApplication(sys.argv)
#初始化
myWin = MyMainForm()
#将窗口控件显示在屏幕上
myWin.show()
#程序运行,sys.exit方法确保程序完整退出。
sys.exit(app.exec_())
三、Pyinstaller打包程序
1.安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
2.使用
打包参数:
# 常用打包参数
# -F -D互斥参数
-F 打包成一个exe文件,小项目可以采用,打开比较慢,多个.py打包时不能使用
-D 默认参数,打包结果放入到创建的文件夹中,可以看到里面有很多的依赖文件
# -w -c互斥参数
-w 使用项目的GUI界面,无cmd控制台
-c 默认参数,使用cmd控制台 如果打包文件执行报错,可尝试用-c 显示控制台
-n 执行项目的名称,默认.py的文件名
-i 将ico图标打包到exe文件中
--hidden-import 打包时导包信息
# 打包PyQt项目强烈建议 带上以下参数
--hidden-import PyQt5.sip
# 打包命令示例
# 在项目的根目录下执行打包命令
pyinstaller -w xxx.py --hidden-import PyQt5.sip
# 打包结果输出在项目根目录下的 dist文件夹中
# 不建议使用 -F打包成一个exe文件 所谓:打包一时爽,打开5秒钟
# 非-F命令下, 静态资源、建好的Sqlite数据库可以直接放入dist中 生成的文件夹中
使用命令:
pyinstaller pyqttest.py -w --hidden-import PyQt5.sip
生成两个目录:
双击F:\PycharmProjects\Mysoftware\dist\pyqttest
目录下的.exe文件
不要双击build下的.exe,会提示找不到.dll文件
参考:
pyinstaller参考