美文网首页
【Python】PyQt5之串口助手【5】

【Python】PyQt5之串口助手【5】

作者: Blue_Well | 来源:发表于2018-08-19 00:15 被阅读0次

    经过连续几天甚至几个星期的头脑风暴之后,相信基本功能都能实现了,如果还是有问题的,可以参考源码。
    源码地址:https://github.com/zengjiawei/CommAssistant-for-PyQt5

    最后一步就是如何将它打包成一个.exe的文件呢?这里主要用到的工具是pyinstaller。

    首先我们来安装Pyinstaller,安装Python的库都比较简单,就是用pip这个指令,按下win+R输入cmd打开打开命令行程序。

    pip install PyInstaller
    

    安装完成之后,通过 'cd' 命令切换到项目的根目录下,输入:

    pyinstaller -F name.py
    

    命令如下图所示,其中 'name.py' 要以实际的项目名称为准。

    打包命令

    按下 'Enter' 后稍等片刻,即会出现 'completed successfully' 的提示。

    打包成功

    打包成功后,会出现几个文件夹,在 'dist' 文件夹下会看到一个应用程序,这个就是我们打包的可执行程序。

    当我双击这个可执行文件的时候,我发现一个奇怪的现象,如果没有出现请忽略,因为我之前也不会的,后来不知弄了什么就出现了。现象如下:

    No module

    出现这个错误后,程序就会一闪而过,现在还不知道什么原因,有知道的可以在下方评论告诉我,感激不尽。
    这里说一下,打开程序会一闪而过,根本来不及看它显示的错误怎么办?这里个小技巧,我们可以打开命令行调试窗口,然后把这个.exe文件拖进去确定,它就不会一闪而过了。
    这里我有另外一个解决方法,就是在打包.py文件时,用以下方式打包。

    pyinstaller -F name.py --hidden-import=modul
    

    这里需要修改 'name.py' 为实际项目名称, 'modul' 为 'PyQt5.sip',重新执行一下,即可正常运行了,目前还没发现有什么问题。

    解决这个小插曲之后,我们双击这个可执行程序,就可以看到我们设计的串口助手了,赶紧测试一下功能呗~

    测试界面

    到这里收发功能已经正常了。但是还有点瑕疵,不知道大家有没有发现,这个小软件的图标是Python文件的图标呢?而且还出现一个命令行调试窗口,仔细的小伙伴可能还发现,这风格就不对了(我用的是win10,一般win10都有这问题),什么?还没发现?上个原图对比一下。

    对比

    这样是不是一目了然,左侧的才是我们实际的效果,而且好看了很多有木有?接下来我们一个个问题解决。

    在我们创建可执行文件的时候,在根目录下会生成一个 'CommAssistant.spec' 文件,这个文件决定了这个程序启动时加载的数据。右键用文本打开,这里主要修改两个地方。

    name.spec

    第一个地方,主要是把样式加载到程序中,因为我发现其实Pycharm是引用 了下图所示位置的样式,才有那样的效果,但是我们打包的时候并没有把这个样式打包进来,才会出现不一样的风格。只要我们把它打包进来即可。(我在想同理能不能把程序用到的图片也加载进去一起打包呢?理论上是可以的,这样就不用转换base64这么麻烦了,不过我还没试过,有空再试试,试完再发一篇补充)

    样式

    第一个地方修改的代码:

    a.datas.extend([('PyQt5/Qt/plugins/styles/qwindowsvistastyle.dll', 'src/styles/qwindowsvistastyle.dll', 'BINARY')])
    

    这部分代码由两部分组成,第一个是引用文件的路径,第二个是项目下的路径,所以我们要在根目录下创建一个该路径的文件,并把样式文件复制到目录下。

    样式路径

    修改的第二部分,主要是增加图标和隐藏命令行调试窗口,这个直接复制即可。注意False后面的逗号,还有路径是 '/' 不是 '\'。

    console=False,
    icon='C:/images/icon.ico' 
    

    修改完这些后,点击保存,然后重新打包一下,这一次打包的不是.py文件,而是我们刚修改的.spec文件。

    重新打包

    确定之后,等待生成完成,再到dict文件夹下,双击运行,是不是跟我们在Pycharm上的一样~

    如果用win10系统的,可以不用cmd打开命令行调试窗口,直接在根目录下按着 'shift键' + 鼠标右键,可以找到 '在此处打开powershell窗口' 的选项,这个跟命令行调试窗口差不多,不用 cd 地址,很方便。

    至此,PyQt5—串口助手就写完了,如果有需要补充的,欢迎大家评论,我再更新,感谢大家支持。

    相关文章

      网友评论

          本文标题:【Python】PyQt5之串口助手【5】

          本文链接:https://www.haomeiwen.com/subject/qwhqiftx.html