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

PyQt的相關(guān)專題、標(biāo)簽、搜索
PyQt的最新內(nèi)容
Matlab APP/PyQt開發(fā):把自己的算法可視化5個(gè)月前
在《一分鐘上手的ABAQUS結(jié)果二次處理工具》一文中,又給出了基于Matlab APP Designer開發(fā)的后處理工具:
下面這個(gè)是同事請我?guī)兔ψ龅囊粋€(gè)PyQt界面案例,他提供基礎(chǔ)算法,我給他做了界面和軟件封裝,分分鐘提升了展示度:
PyQt5可視化軟件
本節(jié)詳細(xì)介紹如何以上述CNN網(wǎng)絡(luò)為主干,實(shí)現(xiàn)對鯊魚種類的檢測識別,且利用PyQt5設(shè)計(jì)了簡約的系統(tǒng)UI界面。在界面中,您可以選擇自己的視頻文件、圖片文件進(jìn)行檢測。此外,您還可以更換自己訓(xùn)練的主干模型,進(jìn)行自己數(shù)據(jù)的檢測。該系統(tǒng)界面優(yōu)美,檢測精度高,功能強(qiáng)大。它具備多目標(biāo)實(shí)時(shí)檢測,同時(shí)可以自由選擇感興趣的檢測目標(biāo)。
如果您正在開發(fā)傳統(tǒng)軟件,如桌面應(yīng)用程序,LightningChart?Python圖表可以在流行的GUI框架(如PyQt和PySide)中使用,以將交互式和動(dòng)態(tài)視覺效果嵌入到Python軟件中。在開發(fā)用于業(yè)務(wù)分析、監(jiān)控、科學(xué)模擬或任何其他領(lǐng)域的桌面應(yīng)用程序時(shí),我們的庫簡化了合并令人驚嘆的視覺效果的過程,通過包含我們的多功能可視化庫,徹底改變您的應(yīng)用程序。
在PyCharm中配置PtQt5環(huán)境:
QtDesigner:ui工具設(shè)計(jì)頁面
PyUIC:將ui文件轉(zhuǎn)化為python代碼
Pyrcc:將圖片、數(shù)據(jù)文件轉(zhuǎn)為python代碼
使用pip安裝PyQt5: pip install PyQt5
使用pip安裝Qt Designer:pip install PyQt5-tools
設(shè)置->添加外部工具Qt
最近,PhiPsi結(jié)合了PyQt5,形成了一個(gè)軟件的界面形式PPView:
軟件的使用,相比于前期版本的使用方法要方便很多,只需鼠標(biāo)點(diǎn)點(diǎn)點(diǎn),即可完成數(shù)據(jù)讀取、內(nèi)核計(jì)算、后處理自定義顯示,作為有限元寶藏up主,怎么可能不整點(diǎn)花活兒呢~
模型測試
在體驗(yàn)完XFEM的一些功能后,我就又回到了有限元求解上,網(wǎng)上都說Fortran計(jì)算效率高,我倒要看看到底有多高,拿一個(gè)164萬個(gè)C3D8單元有限元模型作測試
彈丸對鋼筋混凝土結(jié)構(gòu)的數(shù)值模擬
LS-DYNA | 彈丸侵徹隨機(jī)混凝土層
LS-DYNA | 鋼錘低速撞擊鋼筋混凝土
LS-DYNA | 沖擊壓縮多孔材料
代碼相關(guān)
Python | 破片戰(zhàn)斗部對某導(dǎo)彈陣地的毀傷效果
Python | 多彈打擊地面人員的毀傷概率分布
LS-DYNA | 使用Python批量輔助LS-DYNA的結(jié)構(gòu)設(shè)計(jì)
LS-DYNA | 寫漢字“戰(zhàn)斗部”
PyQt
LS-DYNA | 彈丸對鋼筋混凝土結(jié)構(gòu)的數(shù)值模擬
LS-DYNA | 彈丸侵徹隨機(jī)混凝土層
LS-DYNA | 鋼錘低速撞擊鋼筋混凝土
代碼相關(guān)
Python | 破片戰(zhàn)斗部對某導(dǎo)彈陣地的毀傷效果
Python | 多彈打擊地面人員的毀傷概率分布
LS-DYNA | 使用Python批量輔助LS-DYNA的結(jié)構(gòu)設(shè)計(jì)
LS-DYNA | 寫漢字“戰(zhàn)斗部”
PyQt
LS-DYNA | 彈丸對鋼筋混凝土結(jié)構(gòu)的數(shù)值模擬
LS-DYNA | 彈丸侵徹隨機(jī)混凝土層
LS-DYNA | 鋼錘低速撞擊鋼筋混凝土
代碼相關(guān)
Python | 破片戰(zhàn)斗部對某導(dǎo)彈陣地的毀傷效果
Python | 多彈打擊地面人員的毀傷概率分布
LS-DYNA | 使用Python批量輔助LS-DYNA的結(jié)構(gòu)設(shè)計(jì)
LS-DYNA | 寫漢字“戰(zhàn)斗部”
PyQt
LS-DYNA | 彈丸對鋼筋混凝土結(jié)構(gòu)的數(shù)值模擬
LS-DYNA | 彈丸侵徹隨機(jī)混凝土層
LS-DYNA | 鋼錘低速撞擊鋼筋混凝土
代碼相關(guān)
Python | 破片戰(zhàn)斗部對某導(dǎo)彈陣地的毀傷效果
Python | 多彈打擊地面人員的毀傷概率分布
LS-DYNA | 使用Python批量輔助LS-DYNA的結(jié)構(gòu)設(shè)計(jì)
LS-DYNA | 寫漢字“戰(zhàn)斗部”
PyQt
856025fa71498003529fcdfc16da0651&chksm=8b476665bc30ef733cfed92e83adcd67fe53f92f22638e1a7b2b071c46624199ea19045fcPython | 破片戰(zhàn)斗部對某導(dǎo)彈陣地的毀傷效果
Python | 多彈打擊地面人員的毀傷概率分布
LS-DYNA | 使用Python批量輔助LS-DYNA的結(jié)構(gòu)設(shè)計(jì)
LS-DYNA | 寫漢字“戰(zhàn)斗部”
PyQt