PyQt简单例子: 包括ui文件生成, 代码, 打包exe

本次要做一个简单的软件, 就是一简单的窗口, 然后往里面输入网址(网盘), 然后可以进行浏览器访问或复制链接, 就这么简单;


0. 环境搭建前面教程有了, 就不重复了, 打开Pycharm;


1. ui文件的生成。首先打开QtDesigner:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第1张图片

把ui设计好, 然后保存, 即baidudisktool_ui.ui文件:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第2张图片




2. 将baidudisktool_ui.ui文件转为baidudisktool_ui.py:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第3张图片




3. 开始写主体代码app.py和baidudisk_tool.py :

app.py

import baidudisk_tool
from PyQt5.QtWidgets import QApplication

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    mainWindow = baidudisk_tool.BaiduDiskToolWidget()
    mainWindow.show()
    sys.exit(app.exec_())

baidudisk_tool.py:

import baidudisktool_ui
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QGuiApplication, QClipboard, QDesktopServices
from PyQt5.QtCore import QUrl

class BaiduDiskToolWidget(QWidget):
    def __init__(self):
        super(BaiduDiskToolWidget, self).__init__()
        self.mywidgetui = baidudisktool_ui.Ui_Form()
        self.mywidgetui.setupUi(self)
        self.mywidgetui.pushButtonBaiduOpen.clicked.connect(self.__slotOpenUrl)  # 信号与槽连接
        self.mywidgetui.pushButtonBaiduCopy.clicked.connect(self.__slotCopyUrl)  # 信号与槽连接

        self.board = QGuiApplication.clipboard()

    def __slotOpenUrl(self):
        tempText = self.mywidgetui.labelBaidu.text() + self.mywidgetui.lineEditBaidu.text()
        myurl = QUrl(tempText)
        QDesktopServices.openUrl(myurl)

    def __slotCopyUrl(self):
        tempText = self.mywidgetui.labelBaidu.text() + self.mywidgetui.lineEditBaidu.text()
        self.board.setText(tempText)



4. 编写完运行下app.py, 正常运行, 功能也正常, 不错, 程序部分就这样完成了:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第4张图片




5. 打包: 先弄个ico图标丢到工程里面, 编写pyinstall.py, 也是丢工程里:

pyinstall.py:

import  os
if __name__ == '__main__':
    from PyInstaller.__main__ import run
    opts=['app.py','-w','--icon=shuoGG_re.ico']
    run(opts)

然后运行pyinstall.py, 会生成build和dist文件夹, 在dist文件夹里面就是打包的程序, 运行里面的exe试试, 成功:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第5张图片

PS: 如果没有安装Pyinstaller, 则只需pip install pyinstaller==3.0.0, (不要装最新版有坑), 然后根据你的操作系统和py版本到网上找个pywin32的安装包安装完就OK了.



6. 如果想将所有的文件包括杂七杂八的依赖和exe都打包成一个文件, 则另外编写pyinstall-singlefile.py:

import  os
if __name__ == '__main__':
    from PyInstaller.__main__ import run
    opts=['app.py','-w','-F','--icon=shuoGG_re.ico']
    run(opts)
执行pyinstall-singlefile.py, 同样的, 会生成build和dist文件夹, 在dist文件夹里面就是打包的程序, 运行里面的exe试试, 成功:

PyQt简单例子: 包括ui文件生成, 代码, 打包exe_第6张图片


你可能感兴趣的:(Qt,Python)