1、打开pycharm,点击settings
2、添加插件pyqt5,pyqt5-tools
命令行添加:
pip install pyqt5
pip install pyqt5-tools
pycharm添加插件:
3、点击settings —> Tools —> External Tools,配置参数
QtDesinger:以下第一个修改为相应路径,路径根据自己安装的python路径而定。
QtDesinger
E:\Files\python\Lib\site-packages\pyqt5_tools\designer.exe
$FileDir$$FileName$
$FileDir$
pyuic5:
E:\Files\python\Scripts\pyuic5.exe
$FileName$ -o $FileNameWithoutExtension$.py
$FileDir$
pyrcc:
E:\Files\python\Scripts\pyrcc5.exe
$FileNameWithoutExtension$
$FileDir$
4、先加QtDesinger的参数,program:E:\Files\python\Lib\site-packages\pyqt5_tools\designer.exe,根据安装目录修改地址,arguments:$FileDir$\$FileName$ ,working directory:$FileDir$。
5、添加pyuic5的参数,这个是把qt的UI文件转换成.py文件的工具,program:E:\Files\python\Scripts\pyuic5.exe,根据安装目录修改地址,arguments:$FileName$ -o $FileNameWithoutExtension$.py,working directory:$FileDir$。
6、添加pyrcc的参数,这个是将资源文件如图片等转成python代码能识别的文件,program:E:\Files\python\Scripts\pyrcc5.exe,根据安装目录修改地址,arguments:$FileName$ -o $FileNameWithoutExtension$.py,working directory:$FileDir$。
7、pycharm添加插件后查看添加结果
8、点击Tools —> Externam Tools —> QtDesinger,运行
9、保存后路径下生成 test1.ui
10、ui文件转为 py 文件,右键 test1.ui —> Extreme Tools —> pyuic5,即可在当前路径下生成 test1.py
命令行运行 pyuic:
pyuic5 -o one.py one.ui
遇到的坑: python error:No such file or directory: "one.ui"
working directory 设置项设置为了 $ProbjectFileDir$,这样就会找不到 .ui 文件;修改为$FileDir$,即可。
11、编写 main.py
import sys
import test1
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = test1.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
1、若需要打包成exe,安装插件pyinstaller,方法类似上面安装,之后在Terminal输入
pyinstaller -F test1.py
pyinstaller -F -i snail.ico Application.py
既会在dist文件下生成test1.exe
参数 | 含义 |
-F | 指定打包后只生成一个exe格式的文件 |
-D | –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) |
-c | –console, –nowindowed 使用控制台,无界面(默认) |
-w | –windowed, –noconsole 使用窗口,无控制台 |
-p | 添加搜索路径,让其找到对应的库 |
-i | 改变生成程序的icon图标 |
2、Py2exe是python的一个打包成exe的工具,官方提供的可执行文件还不支持python3。
打包firstPyQt5工程
2.1、编写打包脚本
新建一个 python 打包配置文件 setup.py
from distutils.core import setup
import py2exe
import sys
py2exe_options = {
"includes": ["sip"],
"dll_excludes": ["MSVCP90.dll",],
"compressed": 1,
"optimize": 2,
"ascii": 0,
"bundle_files": 1,
}
setup(
name = '第一个PyQt5程序',
version = '1.0',
windows = ['main.py'],
zipfile = None,
options = {'py2exe': py2exe_options}
)
2.2、运行打包命令,进入到你的工作目录,在cmd里执行
python setup.py py2exe
这个时候直接运行.py文件,发现图形界面不会显示?
第一步:这里需要注释掉三行代码,如图:
第二步:在文件末尾加上一段运行相关代码:
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
ui = Ui_MainWindow()
ui.setupUi(widget)
widget.show()
sys.exit(app.exec_())
'''
if __name__ == "__main__"
用于判断是否直接运行了该.py文件。
modul(模块),也就是.py文件。所有的模块都有一个内置属性__name__。
如果 import 一个模块,那么模块__name__的值通常为模块文件名,不带路径或者文件扩展名。
但如果直接运行一个模块,那么__name__的值是__main__
widget = QtWidgets.QWidget()
因为Qt Designer默认继承的object类,不提供show()显示方法,
所以我们生成一个QWidget对象来重载我们设计的Ui_MainWindow类,达到显示效果。
sys.exit(app.exec_())
app.exec_() ——运行app
sys.exit(app.exec_())——消息循环结束之后返回0,接着调用sys.exit(0)退出程序
'''
第三步:右键->run 就可以看到界面啦
2、将运行代码移到一个外部文件进行管理
注意这个和前面所讲的 右键->run 就能显示界面的方式并不冲突,这样解构的原因是方便管理与扩展,同样的那三行代码不注释掉,依旧会无法显示界面,在这个文件中 右键->run 界面也可以运行界面,需要调用这个模块的文件写法:
import sys
from first import Ui_MainWindow # 这里的first是.ui文件生成的.py文件名
from PyQt5 import QtWidgets
# 这个类继承界面UI类
class mywindow(QtWidgets.QWidget, Ui_MainWindow):
def __init__(self):
super(mywindow, self).__init__()
self.setupUi(self)
#调用show
if __name__=="__main__":
app=QtWidgets.QApplication(sys.argv)
myshow=mywindow()
myshow.show()
sys.exit(app.exec_())