
發布
注冊
/
登錄PyQt的案例
PyQt實現Python程序的界面與邏輯分離
PyQt實現Python程序的界面與邏輯分離
長安CAE
1 概述
PyQt是Python的界面設計平臺,類似于Visual Studio之于VB.net,一般而言一個程序的界面其實不是很重要,關鍵是內部運算,但是對于工科來說,開發程序大多都是為了方便計算,界面用于參數的設置顯得尤為重要。
PyQt作為Python程序的界面開發工具,功能還是比較完備的。PyQt設計程序界面過程中通常結合Eric編譯程序代碼。PyQt不同于VB的平臺,界面里的所有設置都會保存在編譯的代碼里面,當設置項較多時,這類代碼也就比較多,如圖1所示,是采用PyQt設計的一個界面。
圖1 PyQt設計的程序界面
對應于此界面,采用Eric編譯的界面代碼如圖2所示,可知,單界面屬性的代碼就很多,在編寫邏輯運算代碼時,無疑會造成一定的影響,同時Eric編譯程序時,對于編寫的邏輯運算代碼會直接覆蓋,只會更新界面部分的代碼,為此,實現界面代碼與邏輯代碼分開,非常的有必要。
圖2 Eric編譯的程序界面屬性的代碼
2 方法
Python可以通過import語句引進各種模塊,而編譯后的界面的代碼(py文件)也可以已一種模塊的形式被引入邏輯運算部分。
例如,將PyQt設計好的界面進行編譯,操作如圖3所示。
圖3 編譯操作
編譯后的文件即如圖2所示,將該py文件修改名稱,此次改為:Ui_case1_1.py。
之后在Eric的編譯窗口里,可以把里面的左右內容全部刪除,重新在第一行輸入:
import Ui_case1_1 import Ui_Form
程序界面代碼即自動導入進來,代碼簡潔很多很多,然后就可以根據程序的具體內容進行邏輯運算的編寫。
編寫完成后按F2即可運行,此時會彈出之前設置的程序界面,進行參數設置等操作。
展開 利用PyQt進行程序GUI設計
利用PyQt進行程序GUI設計
Qt是一個跨平臺C++圖形用戶界面應用程序開發框架,可以用來開發GUI程序,PyQt是針對Python語言進行GUI程序設計的平臺。
通過PyQt設計GUI程序,可以直接打開PyQt的Design,這次以生成一耳光Main Window示例。
圖1
點擊創建生成一個MainWindow。在這里還有一種用的比較多的方式是通過Eric來打開PyQt的Design界面,通過這種方式比較方便編譯。如圖2所示。
打開python安裝目錄下的eric6.bat文件,啟動Eric,并且通過菜單項目新建一個項目,鼠標右鍵新建一個主窗口,程序自動啟動PyQt的Design界面。在新建的MainWindow鼠標右鍵,創建菜單欄。
圖2
連續創建6個菜單,如圖3所示,輸入每個菜單結束后必須按Enter鍵才可以。
圖3
在每個菜單下面可以根據需要創建子菜單,如圖4所示,但是需要注意的是,子菜單的創建沒法直接輸入中文,需要在外面寫好復制,然后粘貼進來,之后按Enter鍵才可以,這個可能是我安裝版本的問題。
圖4
之后在界面可以拖入控件,如圖5所示。
圖5
PyQt的Design界面窗口右邊有設置各個控件的屬性的窗口,可以設置很多的控件屬性。
創建完程序的GUI界面后,回到Eric,右鍵點擊剛設計的ui編譯窗體,之后在Eric會生成剛才的GUI界面代碼,如圖7所示。
圖6
圖7
如果想改這個GUI的顯式名稱,通過修改Eric生成的代碼,如圖8所示,修改如圖8中紅色框里名稱即可。
圖8
運行之后該程序上面的顯式變成“我的GUI”。
圖9
展開 基于PyQT的工業軟件界面制作保姆級教程 | 環境搭建
在PyCharm中配置PtQt5環境:
QtDesigner:ui工具設計頁面
PyUIC:將ui文件轉化為python代碼
Pyrcc:將圖片、數據文件轉為python代碼
使用pip安裝PyQt5: pip install PyQt5
使用pip安裝Qt Designer:pip install PyQt5-tools
設置->添加外部工具Qt Designer
設置->添加外部工具PyUIC
設置->添加外部工具Pyrcc
編程習慣
在自己的工作目錄中建立一個文件夾用于APP的制作,另放置一個test.py函數,用于測試部分功能代碼,目錄結構如下圖所示:
以上的文件設置可實現界面代碼和邏輯代碼的分離,即每次修改界面時,界面代碼不會覆蓋邏輯代碼,其中,
function文件夾放置信號與槽函數連接
image文件夾放置圖標文件
style文件夾方式自定義的樣式文件,如果不考慮自定義樣式的話,可以不用設置該文件夾
ui文件夾放置界面代碼
界面初始化
打開qtdesigner
創建MainWindow
創建一個簡單的計算器
將mainUI.ui轉換為mainUI.py
mainUI.py大概長這個樣子
在function文件夾中添加信號槽連接函數:signal
from PyQt5.QtWidgets import QMainWindow
from ui.mainUI import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self
展開 PyQt平臺開發Abaqus計算程序
最終實現的功能如圖4所示,生成的py文件:
圖4 Py腳本文件
(2)開始計算
啟動Abaqus調用Python腳本文件在PyQt里面比較好的實現方法是利用Abaqus Command命令提示符窗口。因此,在PyQt里面只需要通過subprocess函數啟動計算機里面的Abaqus Command并且在窗口輸入調用語句即可。
最終即可實現參數化計算,程序界面輸入參數,程序自行啟動Abaqus執行計算。
當然,程序還可以結合Python對Abaqus的計算結果進行后處理,此次不作闡釋。

pyqt5模塊制作俄羅斯方塊小游戲
(2)定義一個外部板塊類
其作用就是將內部板塊類的實時數據信息用pyqt5模塊實時地顯示出來。
Matlab APP/PyQt開發:把自己的算法可視化
在《一分鐘上手的ABAQUS結果二次處理工具》一文中,又給出了基于Matlab APP Designer開發的后處理工具:
下面這個是同事請我幫忙做的一個PyQt界面案例,他提供基礎算法,我給他做了界面和軟件封裝,分分鐘提升了展示度:
Abaqus+PyQt+Python平面變形歐拉角計算
4 絕對歐拉角計算
使用PyQt+Python開發了一個簡單的小軟件,計算絕對歐拉角、相對歐拉角。
首先計算各平面的絕對歐拉角。
計算平面1的10個工況的絕對歐拉角。
平面1變形的絕對歐拉角計算結果如下圖所示。
伴隨絕對歐拉角計算結果,軟件同時寫出了平面變形前后的坐標系數據,如下圖。每行18個數據,每3個數據為一個坐標軸向量,變形前后2個坐標系,6個坐標軸,18個數據。
5 相對歐拉角計算
利用計算絕對歐拉角時得到的坐標系文件,計算平面變形相對歐拉角,如下圖所示,計算平面2相當于平面1、平面3相對與平面1的相對歐拉角。
計算結果如下圖所示。
6 小結
上述軟件用的算法申請了發明專利,軟件申請了軟著。CAE工程師,也可以自制軟件工具,解決重復性、復雜性數據處理等工作痛點。
2021年8月24日于西昌衛星發射中心
展開 基于python的圖片批量添加水印和重命名程序
第三方模塊:PyQt5、pyqt5-tools、PIL。
注意:在使用第三方模塊時,首先需要使用pip install命令安裝該模塊,例如,安裝PyQt5模塊,可以在Python命令窗口中執行以下命令:
pip install PyQt5
運行方法
打開PyCharm開發環境,然后打開源碼文件夾,找到imageMS文件夾,按下<Ctrl+C>進行復制,切換到PyCharm開發環境,在左側列表中按下<Ctrl+V>進行粘貼,展開imageMS文件夾,雙擊main.py打開該文件,然后在右側窗口中單擊右鍵,選擇“Run’main”即可運行程序,如圖1所示。
圖1 選擇'Run main'即可運行程序
程序運行效果如圖2所示(說明:通過菜單即可打開子窗體進行操作)。
圖2 項目主界面
具體的操作步驟如下:
(1)選擇要執行的操作:主窗體主要起到導航的功能,該窗體中通過選擇相應菜單可以打開批量添加水印窗體和批量重命名窗體。圖片目前只支持png格式。
(2)批量添加水?。涸谥鞔绑w的菜單中選擇“主菜單”/“添加水印”菜單,彈出圖片批量添加水印窗體,該窗體中,首先單擊“加載圖片”按鈕,選擇要添加水印的圖片;然后對水印文字或者圖片進行設置,接下來設置水印的透明度和位置,單擊“路徑設置”區域的“瀏覽”按鈕,對水印圖片的保存路徑進行設置,全部設置完成后,單擊“執行”按鈕,即可批量為選擇的圖片添加文字或者圖片水印,如圖3所示。
展開 高體積分數骨料生成示例
采用PyQt的圖形處理功能,可以對顆粒輪廓進行檢測,進行高效的投放和重疊檢測。下圖通過橢圓投放對比一下圓基和利用PyQt輪廓檢測的區別。可以發現圓基生成中橢圓只有長軸處才可能靠近,輪廓檢測中橢圓的各個位置都可能靠近。這也是采用輪廓檢測生成方法可生成最高體積分數高于圓基的原因。
經過測試,本案例所述腳本生成的體積分數最高可達70%,這個最高體積分數會隨著級配變化,如果只是同粒徑骨料體積分數可能會低一點。
下面給出腳本的部分生成流程:
下面是利用這個方法生成的兩個案例:
歡迎私信或者聯系QQ1511646430進行交流。
附件中提供了一個用本案例所述腳本生成的體積分數為65%的隨機多邊形案例(cae文件,abaqus2019版)
案例.zip
展開 Python—exe程序開發及打包
pyinstaller -F --upx-dir c:\Python\Scripts -w -i 1.ico s.py
若出現下圖錯誤,
解決方案:C:\Python\Lib\site-packages\PyQt5\Qt\plugins(這是我的安裝路徑),在此文件夾下找到platforms文件夾,然后拷貝整個文件夾,將其放到與exe相同的路徑下,這時候就可以運行exe了。
整理分享不易,有用請點贊!
利用python處理Excel表格中的銷售數據
第三方模塊:PyQt5、pyqt5-tools、pandas、matplotlib、xlrd。
注意:在使用第三方模塊時,首先需要使用pip install命令安裝該模塊。
運行方法打開PyCharm開發環境,然后在主菜單上選擇File→Open菜單項,在打開的Open File or Project對話框中,選擇項目wordhelper,如圖1所示。
圖1 Open File or Project
對話框打開項目后,在右側的Project面板中選中程序的主文件dataExcel.py,并且單擊鼠標右鍵,在彈出的快捷菜單中選擇"Run 'dataExcel'"菜單項運行項目,如圖3所示。
圖2 選擇"Run'wordhelper'"
即可運行程序如圖3所示的系統主界面。在該界面中,通過頂部的工具欄可以選擇所要進行的操作。
圖3 系統主界面
具體的操作步驟如下:(1)導入Excel。單擊工具欄中的"導入Excel"按鈕,打開文件對話框選擇文件夾,如XS1文件夾,系統將遍歷該文件夾中的*.xls文件,并且將文件添加到列表區,效果如圖4所示。
圖4 導入Excel文件
(2)提取列數據。單擊工具欄中的"提取列數據"按鈕,提取買家會員名、收貨人姓名、聯系手機和寶貝標題,效果如圖5所示。提取后的數據將保存在程序所在目錄下的mycell.xls文件中。
圖5 提取列數據
說明:"輸出選項"可以選擇數據分析結果要保存的位置,默認是程序所在文件夾。
(3)定向篩選。單擊工具欄中的"定向篩選"按鈕,篩選"零基礎學Python"的用戶信息,效果如圖6所示。篩選后的數據將保存在程序所在目錄下的mycell.xls文件中。
圖6 定向篩選
(4)多表合并。
展開 
基于Python深度學習的鯊魚識別分類系統
PyQt5可視化軟件
本節詳細介紹如何以上述CNN網絡為主干,實現對鯊魚種類的檢測識別,且利用PyQt5設計了簡約的系統UI界面。在界面中,您可以選擇自己的視頻文件、圖片文件進行檢測。此外,您還可以更換自己訓練的主干模型,進行自己數據的檢測。該系統界面優美,檢測精度高,功能強大。它具備多目標實時檢測,同時可以自由選擇感興趣的檢測目標。本文提供了完整的Python程序代碼和使用教程,適合新入門的朋友參考,包括用戶登錄界面(注冊登錄和修改密碼),管理員主界面(用戶賬戶信息、查看歷史資源和鯊魚種類百科),普通用戶界面(上傳歷史記錄、鯊魚圖像識別和鯊魚種類百科),以及鯊魚識別界面(圖片和視頻)。
圖5 基于深度學習的鯊魚識別分類系統演示界面
最后,有相關需求歡迎通過公眾號“320科技工作室”與我們聯絡。
展開 父與子的編程之旅PDF文檔免費下載
在第 20 章的 GUI 編程部分,我們將不再被支持的 PythonCard 換成了應用更廣泛的 PyQt。PyQt 也用在第 22 章的 Hangman 程序和第 24 章的電子寵物程序中。
增加了第 25 章,用來詳細解釋第 10 章中的 Skier 程序。
增加了第 26 章,講述在簡單的對戰游戲中,如何編寫一個有人工智。
Salome平臺介紹及二次開發案例
該模塊通過SIP庫及SWIG庫,前者實際是PYQT開發商RiverBank開發的用于PYQT的Python/C++混合編程解決方案【2】。通過SIP生成的Python接口,使得開發者可以很方便地調用各個模塊,實現根據實際模擬仿真的需要,組裝現有的特定模塊以及添加自定義模塊用于構建仿真APP。
下面是一個簡單的二次開發案例——桁架橋設計器【3】。使用到的SALOME原有模塊:SHAPER、GEOM、SMESH、PARAVIS。使用的求解器是著名開源結構有限元軟件Code-Aster。
該APP已經集成至“神工坊”2.0平臺。圖形界面通過GPU集群渲染,保證用戶端流暢的圖形操作;后臺計算提交至超算高性能計算節點。
1. 注冊并登陸神工坊2.0平臺,選擇“仿真計算”。
2. 雙擊TBridgeDesigner圖標在彈出框中設置相應參數,點擊“提交”。
3. APP界面操作
打開APP是一個定制化的參數化建模界面,后臺是GEOM和SHPAER模塊的參數化建模腳本以及SMESH模塊的自動劃分網格腳本。在“總體設計”選項卡中輸入幾何參數,點擊“確定”即可在左側VTK viewer顯示網格劃分后的結果?!皢卧獙傩浴?、“材料屬性”選項卡可設置不同幾何部分的單元屬性和材料屬性。設置完成后點擊“應用”更新。
此外,為了方便用戶交互查看、設置不同位置的單元參數,調用VTK-3D viewer顯示接口,高亮顯示不同位置的網格。
點擊“提交計算”,后臺將通過調度器將作業提交至超算高性能計算節點。
點擊頁面左側標簽頁“Paraview后處理”直接切換至后處理界面。
展開 基于Python的Excel表格差異對比工具
對比工具
工作室基于Python 3.7的Pyqt4、xlrd等模塊,開發了一款excel數據對比的工具,該工具可以區分兩個相似的excel表格,指出新的表格相比于舊表格改動的地方。如下圖所示:
1所在的區域為舊表格,2所在的區域為新表格,3所在的區域為結果展示,由圖可以看出,差異對比可以指出新舊表格的行數、列數變化以及單元格的改動。并且,新舊表格的紅色表示有增刪的行和列,黃色表示數值不一致的單元格。單元格對比的結果如下所示:
有了這款小工具,再也不用人工盯著兩個顯示屏一個一個來查找啦~~
最后,更多干貨歡迎關注“320科技工作室”的微信公眾號~