PyQt5 & Qt Designer使用小結


開始在知乎寫文章的原因,主要還是想整理平時的經驗,方便自己以后查看,有機會的話大家也可以交流吧。

11月中旬由於項目需要,和另一名實習生負責使用Python開發一個數據分析的小軟件。

雖然才開始接觸Qt,屬於菜鳥,但是由於第一步就需要用到它,所以第一篇文章就講講它吧。查了一些資料后,我們決定使用Qt Designer進行設計,然后轉換為py文件,再使用PyQt5完成信號槽等操作,將我們基於sklearn加工而成的類和函數connect給信號槽。


 

1. PyQt5和Qt Designer的安裝

pip install pyqt5 pip install pyqt5-tools

安裝完成后,Python安裝目錄下的Lib\site-packages\pyqt5-tools\designer\designer.exe即是Qt Designer軟件。我用的是anaconda,所以Qt Designer軟件在:C:\ProgramData\Anaconda3\Lib\site-packages\pyqt5_tools\designer.exe

安裝中遇到的兩個問題以及解決思路:

(1)安裝不了或者安裝速度太慢。

可以嘗試到官網或Python Extension Packages for Windows下載到本地,然后再用pip install安裝。

(2)安裝失敗:***.whl is not a supported wheel on this platform

在Python中輸入以下代碼,查看目前版本Python所支持的whl類型,然后下載相應的whl文件,再用pip install安裝。

print(pip.pep425tags.get_supported())

 

2.Qt Designer簡介

安裝完成后,打開Qt Designer,界面是這樣子的:

(1)由於是菜鳥,我們主要用到的是圖中標出的4個區域,先介紹一下它們:

區域1是控件和布局,需要使用哪種控件和布局,可以直接將其拉到區域4。

區域2列出了已被使用的所有控件,以及它們之間的隸屬關系。

區域3是控制屬性面板,可以設置控件的各種屬性,比如大小和字體等,以及控件下屬的各個控件的布局。

(2)區域1的控件簡介:

這里只介紹部分我們使用到的控件,其他的可以參考官方文檔:Qt Designer Manual

Buttons:

Push Button:用作按鈕

Radio Button:用作單項選擇的小圓圈

Check Box:用作多項選擇的小方框

Containers:

Group Box:用作不同區塊的容器

Tab Widget:用作不同頁的分頁按鈕

Input Widgets:

Combo Box:用作下拉菜單

Line Edit:用於給用戶輸入

Display Widgets:

Label:用作界面的文字提示

Text Browser:用於輸出的顯示,應該注意的是它沒法輸出圖形

 

3. 一個簡單的UI示例

(1)通過上面介紹的控件,可以簡單創建一個UI,在創建時沒必要強制每個控件都完全對齊,因為之后會通過選擇網格對齊來調整整個界面。

注意:養成良好的習慣。最好在創建控件后,在控件屬性的區域更改每個控件的名稱,因為在UI設計完成之后,導出成py文件並創建信號槽操作時,需要用到這些名稱。如果名稱沒有更改好,不僅創建信號槽時很抓狂,維護起來也會令人窒息!!!

(2)創建好UI后,在最頂層方框右擊 → Lay out → Lay out in a grid,即可在網格中對其各個控件。這樣做有一個好處,即在最后創建好的視圖中,每個控件的大小會隨着窗口的大小而改變。如果不這樣做,那當窗口大小改變時,控件大小不變,畫風會很奇特。

通過網格布局后,可以通過圖中區域1,調整控件的比例。當控件很多時,調整起來會比較麻煩,需要細心處理。

最后,當UI設計完成后,可以Ctrl+R預覽效果。

 

4.保存ui並轉換成py文件

將完成的UI保存為.ui文件,我保存的路徑為E:\test.ui,然后在cmd中通過下面代碼即可將其轉換成.py文件。

pyuic5 -o E:\test.py E:\test.ui

轉換完成后,結果如下,在Python中即可使用PyQt5來進行信號槽等操作了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM