使用Python进行窗口程序的开发,开发工具Pyside2,Pyinstaller
工具
python3.7.9-SDK
https://wws.lanzoui.com/i7hiwpzc3vg
密码:bep1
Pyside2
图形化GUI的包
安装方式: pip install pyside2 -i https://pypi.mirrors.ustc.edu.cn/simple/
采用中国科学技术大学的镜像安装
QT-Desinger
手绘窗口GUI用的,如果你已安装过pyside2,那么源程序位置就在\Lib\site-packages\PySide2\desinger.exe
Pyinstaller
负责打包发布程序用的
安装方式 pip install pyinstaller -i https://pypi.mirrors.ustc.edu.cn/simple/
说明文档地址
开发
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication, QMessageBox, QTableWidgetItem
class Window:
def __init__(self):
# 从文件中加载UI定义
# 从 UI 定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如 self.ui.button , self.ui.textEdit
self.util = Util();
#这里的ui文件是你自己在qt_desinger中创建的,获取窗口对象
self.frame = QUiLoader().load('ui/MainWindowTest.ui');
# 负责给下拉框添加数据
self.util.addMainCombo(self.frame.HttpSelect);
# 处理表格+按钮点击事件 属性名都是在qt_desinger中自定义的
self.frame.headerButtonAdd.clicked.connect(self.handleHeaderButtonAddEvent);
# 处理表格-按钮点击事件
self.frame.headerButtonDel.clicked.connect(self.handleHeaderButtonRemoveEvent);
# 处理发送按钮事件
self.frame.sendButton.clicked.connect(self.handleSendButton)
def handleHeaderButtonAddEvent(self):
print('添加一列')
self.frame.headerForm.insertRow(0);
def handleHeaderButtonRemoveEvent(self):
print('删除一列')
self.frame.headerForm.removeRow(0);
def handleSendButton(self):
print('已发送');
url = self.frame.requestUrl.text();
self.frame.returnMessage.setPlainText(url);
# 负责加载数据的工具类
class Util:
def addMainCombo(self, box):
box.addItems(['GET', 'POST', 'PUT', 'DELETE']);
app = QApplication([])
stats = Window()
stats.frame.show()
app.exec_()
效果如下
打包
pyinstaller 你主程序.py --noconsole --hidden-import PySide2.QtXml
执行完后会生成一个dist目录,最后记得把所需的配置文件(比如你的照片,ui文件等)加进生的dist文件夹下一级目录中去