design 需要單獨安裝。 直接用pip3 install PyQt5-tools會提示找不到安裝文件。
https://github.com/altendky/pyqt5-tools/releases/tag/v5.7.dev1
pip install PyQt5-tools -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com
Qt Designer的介紹
在PyQt中編寫UI界面可以直接通過代碼來實現,也可以通過Qt Designer來完成。Qt Designer的設計符合MVC的架構,其實現了視圖和邏輯的分離,從而實現了開發的便捷。Qt Designer中的操作方式十分靈活,其通過拖拽的方式放置控件可以隨時查看控件效果。Qt Designer生成的.ui文件(實質上是XML格式的文件)也可以通過pyuic5工具轉換成.py文件。
Qt Designer隨PyQt5-tools包一起安裝,其安裝路徑在 “Python安裝路徑\Lib\site-packages\pyqt5-tools”下。
若要啟動Qt Designer可以直接到上述目錄下,雙擊designer.exe打開Qt Designer;或將上述路徑加入環境變量,在命令行輸入designer打開;或在PyCharm中將其配置為外部工具打開。
下面以PyCharm為例,講述PyCharm中Qt Designer的配置方法。
PyCharm中PyQt5工具配置
打開PyCharm,選擇Settings -> Tools -> External Tools,點擊左上角的綠色加號。

Name填入QtDesigner(方便后續使用,名稱無所謂)。Program選擇我們安裝的PyQt5-tools下面的designer.exe。Working directory則選擇我們的工作目錄。然后點擊OK,則添加了QtDesigner作為PyCharm的外置工具。
然后添加PyUIC(UI轉換工具),PyUIC的Program為Python.exe,在Python的安裝目錄下面的Scripts目錄下,Working directory同理設為我們的工作目錄,Arguments則填入如下代碼:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
最后添加pyrcc用於PyQt5的資源文件轉碼。具體配置與上述內容相同,Arguments填入:
$FileName$ -o $FileNameWithoutExtension$_rc.py
退出之前,點擊Apply保存配置。配置完成之后,PyCharm中會加入3個工具。

點擊QtDesigner則打開QtDesigner的界面。
Qt Designer界面簡介
剛打開Qt Designer,則彈出如下圖所示的窗口。

創建新的Form給出了5個模板,其中Widget與Main Window最為常用。這里我們選擇創建一個Main Window。

上面界面的最左側菜單為Widget Box,Widget Box中包含PyQt5中的所有Widget組件,我們可以從左側的Widget Box中拖拽出諸如Button、View和Input等組件到中間的窗口中。
點擊Form -> Preview(快捷鍵為Ctrl+R)則可以預覽我們設計好的界面,也可以用Preview In來選擇在相應的主題風格下預覽。
我們拖拽一個Label與Button進入主窗口(Main Window)。

此時在右上角的Object Inspector(對象查看器)中可以看到主窗口中的已放置的對象(label與pushButton)以及其相應地Qt類。

以Label為例,此時我們點擊Main Window中的label或是在Object Inspector中選取label后,查看右側的一塊區域——Property Editor(屬性編輯器)。

其主要包含屬性有如下:
名稱 | 含義 |
---|---|
objectName | 控件對象名稱 |
geometry | 相應寬和高與坐標 |
sizePolicy | 控件大小的策略 |
minimumSize | 最小的寬和高 |
maximumSize | 最大的寬和高 |
font | 字體 |
cursor | 光標 |
... | ... |
PS:將minimumSize和maximumSize設為一樣的數值之后,則窗口的大小固定。
最右下角的部分則為Resource Browser(資源瀏覽器),資源瀏覽器中可以添加相應地如圖片素材,作為Label或Button等控件的背景圖片等。

Qt Designer的UI文件
使用Qt Designer設計保存的文件為.ui格式的文件。
通過保存並使用記事本等軟件打開,我們可以看到.ui文件的內容如下:
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>600</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <widget class="QWidget" name="centralwidget"> <widget class="QLabel" name="label"> <property name="geometry"> <rect> <x>240</x> <y>80</y> <width>72</width> <height>15</height> </rect> </property> <property name="text"> <string>TextLabel</string> </property> </widget> <widget class="QPushButton" name="pushButton"> <property name="geometry"> <rect> <x>240