<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
桌面應用軟體是基於GUI(Graphical User Interface,圖形化使用者介面)互動式程式,需要實現GUI庫實現前端互動。
Python常見的GUI庫
程式打包工具:Pyinstaller
下圖為Python桌面應用軟體開發大體的技術架構。
圖1 軟體技術架構
(1)PySide2——控制元件
圖形介面的工具基礎:控制元件(widget)、訊號(signal)與槽(solt),控制元件表示前端介面可顯示/操作/互動的元素,如按鈕、輸入控制元件、展示控制元件等,供使用者點選、接受使用者輸入、展示內容、存放其它控制元件。
PySide2的安裝:
pip install PySide2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
下面為一個PySide2程式的實現流程:
1.定義一個應用
2.定義主視窗
3.定義需要的控制元件
4.執行應用,進入事件迴圈
# -*- coding: utf-8 -*- """ # @file name : 01_helloworld.py # @brief : 使用pyside編寫第一個軟體 """ from PySide2.QtWidgets import QApplication, QMainWindow, QTextBrowser, QLabel if __name__ == "__main__": app = QApplication([]) # UI應用程式管理應用 # ================================================ # 1. 定義主視窗 window = QMainWindow() # 2. 定義文字方塊顯示 label = QLabel(window) label.setText("Hello World!") # 3. 視窗顯示 window.show() # ================================================ app.exec_() # 進入QApplication的事件處理迴圈
圖2 PySide2實現第一個GUI介面
(2)PySide2——訊號(signal)與槽(slot)
使用者對圖形介面的控制元件操作就會產生訊號,程式應能接收識別訊號,並進行相應的處理。特點訊號的處理常式稱為槽。
按鈕被點選時,向程式發出訊號,程式自動執行btn_slot函數。
# -*- coding: utf-8 -*- """ # @file name : 02_signal&slot.py # @brief : 瞭解訊號與槽 """ from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QLineEdit if __name__ == "__main__": app = QApplication([]) # UI應用程式管理應用 # ================================================ # first. 定義主視窗 window = QMainWindow() window.resize(500, 400) window.move(300, 310) # 2. 定義按鈕控制元件 def btn_slot(): print("使用者點選了按鈕,將執行xxx") btn = QPushButton("我的按鈕", window) btn.clicked.connect(btn_slot) # 3. 單行文字方塊 def text_slot(): text = text_edit.text() print("檢測到文字方塊變動,當前文字方塊資訊為:{}".format(text)) text_edit = QLineEdit(window) text_edit.move(100, 0) text_edit.setPlaceholderText('請輸入資訊...') text_edit.textChanged.connect(text_slot) # 視窗顯示 window.show() # ================================================ app.exec_() # 進入QApplication的事件處理迴圈
圖3PySide2實現第二個GUI介面
(3)常用控制元件
1.按鈕:btn = QPushButton(“我的按鈕”,window)
2.單行文字方塊:text_edit = LineEdit(window)
3.標籤顯示:label = QLabel(window)
4.檔案選擇:path_file,filetype = QFileDialog.getOpenFileName(window,"選取檔案","./","All File(*);;Text Files(*.jpg)")
(4)Qt Designer
Qt Designer可以通過拖曳的方式完成複雜的介面設計,完成控制元件設計。Qt Designer生成的UI介面是一個字尾為.ui的檔案,其實是一個XML檔案。通過使用pyuic5命令將.ui檔案轉換成.py檔案,然後將.py檔案引入到自定義的Python程式碼中。主要分為以下四步:
圖4 Qt Designer設計流程
封裝--物件導向三大特性之一,物件導向(Object Oriented Programming)的三大特性如下:
類的設計三要素:
圖5封裝模型的過程
Pyinstaller是一個用來將Python程式打包成一個獨立可執行軟體包,支援Windows、Linux和Mac OS,Pyinstaller可以讀取您編寫的Python指令碼。
Pyinstaller分析程式碼執行所需的所有模組,然後將這些檔案的副本和Python直譯器一起放在單個資料夾中,或者在單個可執行檔案中。
Pyinstaller的安裝:
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
軟體打包執行命令:pyinstaller xxx.py,完成後到root/dist/xxx下,找到xxx.exe
pyinstaller main.py --noconsole -F -p D:course_studyCV_Itemselfimg_cls
更新spec檔案命令:
pyinstaller -F --onefile main.spec
常用引數:
-F,-onefile產生單個的可執行檔案
-p,設定python匯入模組的路徑(和設定pythonpath環境變數的作用相似)
--noconsole軟體啟動時不顯示命令窗
到此這篇關於Python詳細介紹模型封裝部署流程的文章就介紹到這了,更多相關Python模型封裝內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45