本文介紹瞭如何使用技術棧PyCharm+Qt Designer+PyQt5來開發桌面軟體,從環境搭建、例子演示到對容易混淆概念的解釋。文中用到的全部軟體+程式碼下載連結為:https://url39.ctfile.com/f/2501739-683704177-83c7fe?p=2096 (存取密碼: 2096)
(1)安裝Qt Designer
使用版本為Qt Designer 5.11.1,安裝過程就是下一步...最後完成。安裝路徑是D:\Program Files (x86)\Qt Designer
。
(2)漢化操作
預設安裝的Qt Designer是英文版本的,漢化的操作為將designer_zh_CN.qm
檔案放入D:\Program Files (x86)\Qt Designer\translations
資料夾中即可。重啟Qt Designer後就可以看到漢化版的介面:
主要是安裝PyQt5和PyQt5-tools如下:
pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple
設定PyCharm外部工具目的主要是為了方便的通過PyCharm將.ui(設計檔案)轉換為.py檔案,將.qrc檔案(資原始檔)轉換為.py檔案:
1.設定QtDesigner
主要作用是通過PyCharm外部工具,可以直接通過Qt Designer開啟.ui檔案:
(1)Program:D:\Program Files (x86)\Qt Designer\designer.exe
(2)Working directory:$FileDir$
2.設定PyUIC
主要作用是通過PyCharm外部工具,可以直接通過命令將.ui檔案轉換為.py檔案:
(1)Program:D:\Python37\python.exe
(2)Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
(3)Working directory:$FileDir$
3.設定Pyrcc
主要作用是通過PyCharm外部工具,可以直接通過命令將.qrc檔案轉換為.py檔案:
(1)Program:D:\Python37\Scripts\pyrcc5.exe
(2)Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
(3)Working directory:$FileDir$
檔案->新建->templates\forms->Widget:
在畫布上拖拽一個按鈕控制元件,然後另存為.ui檔案:
轉換後就多出來了一個和.ui檔案相同名字的.py檔案:
說明:轉換.qrc檔案為.py檔案操作類似。
通過main()方法來載入.ui檔案轉換後的.py檔案:
自己開發PyQt5軟體的技術棧是PyCharm+Qt Designer+PyQt5。下面對容易混淆的PySide2、PySide6、PyQt5、PyQt6、Qt Designer、Qt Creator、Eric6、PyCharm等進行簡要的說明:
解析:兩種不同的做桌面軟體的Python類庫,PyQt5名氣更大,PySide2是QT官方支援,不過兩者的大部分介面比較類似。
解析:PySide6支援的是Qt6版本,而PySide2支援的是Qt5版本。
解析:Qt Designer主要是做UI介面的,而Qt Creator除此外還支援開發完整的Qt程式。在用Qt Creator 7.0.0時,預設支援的是PySide2和PySide6,而不是PyQt5和PyQt6。
解析:Eric6是Python程式設計的IDE,對PyQt5的支援很好。但是現在PyCharm是Python程式設計的主流IDE。
參考文獻:
[1]Qt Designer Download:https://build-system.fman.io/qt-designer-download
[2]Qt Designer V5.11.1完全漢化版:http://www.downxia.com/downinfo/339962.html
[3]PyQt5 Reference Guide:https://www.riverbankcomputing.com/static/Docs/PyQt5/
[4]20220929_基於Qt Designer和PyQt5的桌面軟體開發--環境搭建和入門例子.zip:https://url39.ctfile.com/f/2501739-683704177-83c7fe?p=2096 (存取密碼: 2096)
吾愛DotNet 專注於.NET領域的技術分享
人工智慧乾貨推薦 專注於人工智慧領域的技術分享