界面与逻辑分离
参考视频
参考书籍:《PyQt5快速开发与实践》王硕等
界面文件是指通过ui文件编译而来的py文件,如下文提到的widget.py文件,由于每次ui文件编译的时候,界面文件都会初始化,所以需要新建一个文件调用py文件,新建的py文件称为逻辑文件。
逻辑文件:widget_main.py
# 界面与逻辑分开通用模板
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import uic
# 加载UI文件
Ui_MainWindow, Ui_MainWindowBase = uic.loadUiType("widget.ui")
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MyMainWindow, self).__init__()
self.setupUi(self)
# 插入逻辑代码部分
def main():
app = QApplication(sys.argv)
window = MyMainWindow()
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
界面文件:widget.py
设计的ui文件,通过ui转py文件,可以看到通过qt designer生成的代码,学习界面控件的写法。
打包
使用PyInstaller打包项目生成EXE文件
1. 安装 PyInstaller 模块
在终端使用pip命令:
pip install PyInstaller
2.PyInstaller 的使用
在终端使用命令:
pyinstaller widget_main.py
# pyinstaller [opts] yourprogram.py
# [opts]:
# -F: 打包生成一个exe文件
# -D: 创建一个目录,包含exe文件,但会依赖很多文件(默认)
# -C: 使用控制台,无窗口(默认)
# -D: 使用窗口,无控制台(默认)
3.在同目录下的dist子文件夹中生成exe文件
新生成的文件夹
在dist文件夹下,在包含着exe文件的目录中,把代码调用到的ui文件和一些图标要素都复制进去,没有将ui文件包含进去的话,软件会闪退。