最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

PyQt完整軟件綜合案例:登錄框

2023-07-15 22:04 作者:矢來美羽MIUYARAI  | 我要投稿

基于教材《PyQt編程快速上手》5.4登錄框開發(fā)實(shí)戰(zhàn)。部分基礎(chǔ)知識(shí):

  1. 《快速掌握PyQt5》第五章 完善登錄框小程序:https://zhuanlan.zhihu.com/p/75527971

  2. 《快速掌握PyQt5》第十四章 快速制作界面Qt Designer:https://zhuanlan.zhihu.com/p/75673557

  3. 《快速掌握PyQt5》第二十五章 Pyinstaller打包:https://zhuanlan.zhihu.com/p/86966093

  4. 白月黑羽 -?動(dòng)態(tài)加載UI文件(視頻):https://www.bilibili.com/video/BV1cJ411R7bP?p=5

  5. 白月黑羽 -?動(dòng)態(tài)加載UI文件(代碼):https://www.byhy.net/tut/py/gui/qt_03/#%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BDui%E6%96%87%E4%BB%B6

  6. Anaconda創(chuàng)建、使用、刪除Python虛擬環(huán)境:https://zhuanlan.zhihu.com/p/594405403

第一步?前端設(shè)計(jì)

使用pyqt5-tools庫自帶的Qt Designer以可視化的形式完成:

保存的格式為“.ui”,保存在準(zhǔn)備好的文件夾內(nèi):

第二步 加載.ui文件

方法1:采用python自帶工具pyui5

方法1的外部工具方案:先添加為外部工具,然后使用。

方法1的代碼實(shí)現(xiàn)方案:使用代碼調(diào)用pyui5,參考https://www.byhy.net/tut/py/gui/qt_03/#%E8%BD%AC%E5%8C%96ui%E6%96%87%E4%BB%B6%E4%B8%BApython%E4%BB%A3%E7%A0%81

方法2:使用PyQt5庫的uic,加載ui定義

參考資料:https://www.byhy.net/tut/py/gui/qt_03/#%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BDui%E6%96%87%E4%BB%B6

把原先的:

改成

對(duì)于類內(nèi)部函數(shù),添加內(nèi)容:(但在實(shí)際操作中,因?yàn)閷?duì)“面向?qū)ο蟆钡牟僮鞑皇煜ぃ惠敵隽丝粘绦蚩?,這部分內(nèi)容讀者可以自行摸索)

第三步 后端編程

1. 先前加載出的UI模塊login_ui.py

2. 窗口邏輯模塊window.py

3. 主程序main.py

第四步 測(cè)試(打包前)

第五步 打包

1. 基礎(chǔ)打包法:多文件打包模式(cmd命令)

生成三個(gè)文件:build文件夾里是編譯文件,可刪除;dist文件夾(89.3MB)是軟件本體,內(nèi)有main.exe;main.spec是打包配置文件,用來打包,因?yàn)榇虬昧?,所以可刪除。對(duì)于login_ui.py中用到的com_it.jpg文件,需要手動(dòng)復(fù)制到main文件夾才能生效(main.exe所在的文件夾)。也就是說,程序中的資源文件都是需要手動(dòng)復(fù)制的,解決方法見下文第5條。

2. 單文件打包模式

dist文件夾內(nèi)只有一個(gè)main.exe(單文件,34.8MB。但因?yàn)樯婕皦嚎s、解壓的過程,程序運(yùn)行會(huì)變慢。

3. 取消exe運(yùn)行時(shí)的調(diào)試黑框

4. 給可執(zhí)行文件exe加上圖標(biāo)

提前在目錄內(nèi)準(zhǔn)備好一個(gè)圖標(biāo),再運(yùn)行cmd:(可能需要移動(dòng)一下exe的路徑,圖標(biāo)才變化)

使用前
使用后

5. 資源文件自動(dòng)打包

免去手動(dòng)復(fù)制的麻煩:

本例中,就是用:(多文件打包模式)

如果是單文件打包模式,在login_ui中加上res_path函數(shù),并給函數(shù)中的各個(gè)路徑套上

套上路徑:

cmd指令:

圖標(biāo)成功顯示:(好累啊……)

6. 減小打包后的體積

方向1:采用虛擬環(huán)境(實(shí)測(cè)似乎對(duì)PyQt的效果不佳)

應(yīng)該還有別的方法。我是查到可以采用Anaconda Prompt創(chuàng)建虛擬環(huán)境:https://zhuanlan.zhihu.com/p/594405403

如圖,創(chuàng)建成功:

然后給虛擬環(huán)境安裝庫:

修改路徑,然后打包:

新的打包文件由34.8MB降到34.1MB,我暈??

關(guān)閉環(huán)境、移除虛擬環(huán)境、查看已安裝環(huán)境:

可見成功移除:

方向2:移除指定的庫

新的打包文件由34.8MB降到34.8MB,絕了

方向3:使用UPX工具

官網(wǎng):https://upx.github.io/

我用的是upx-4.0.2-win64版本,解壓后放在main.py所在文件夾后(或者添加到環(huán)境變量中),運(yùn)行cmd:

新的打包文件由34.8MB降到27.3MB,什么叫專業(yè)?。?/p>

第六步(最后一步) 完善

發(fā)現(xiàn)忘記加-w了,加!再exclude一下,疊個(gè)buff。來!

exclude之后體積還更大了……下次不ex了??

啟動(dòng)!——


PyQt完整軟件綜合案例:登錄框的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
四川省| 获嘉县| 安化县| 文山县| 永昌县| 湖口县| 金溪县| 牟定县| 临朐县| 蒙自县| 祁门县| 梓潼县| 外汇| 时尚| 黄石市| 朝阳区| 嵊泗县| 南川市| 泾源县| 昌黎县| 海安县| 泰和县| 雷州市| 蓬溪县| 白玉县| 昭苏县| 伊宁县| 佛山市| 新丰县| 始兴县| 陵川县| 怀安县| 北川| 剑阁县| 平湖市| 阿荣旗| 正定县| 塔城市| 新巴尔虎左旗| 建始县| 吴堡县|