一、環境安裝
(一)包下載安裝
1、創建虛擬環境
使用anaconda創建一個虛擬環境:
(base) C:\Users\Administrator>conda create -n pyqt5_study python==3.5.2
2、安裝pyqt5
(pyqt5_study) E:\python\pip-18.1>pip install PyQt5 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
3、安裝pyqt5-tools
(pyqt5_study) E:\python\pip-18.1>pip install pyqt5-tools -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
之所以安裝這個包,是因為我們需要使用它的QtDesigner。
(二)PyCharm中進行配置
1、配置虛擬環境
在創建項目時,指定項目的虛擬環境。
2、配置QtDesigner
在File-->Settings-->Tools-->External Tools中添加工具:
3、配置PyUIC
這個是將上面QtDesigner工具產生的ui文件轉成py文件:
Arguments:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
二、測試
(一)代碼編寫
from PyQt5.QtWidgets import QApplication,QWidget import sys if __name__ == '__main__': app = QApplication(sys.argv) #創建QApplication類的實例 w = QWidget() #創建一個窗口 w.resize(500,300) #設置窗口的尺寸 w.move(400,400) #移動窗口 w.setWindowTitle('桌面應用') #設置窗口的標題 w.show() #顯示窗口 sys.exit(app.exec_()) #進入程序主循環,窗口不會關閉,並且exit函數確保主循環安全退出
運行:
這里面涉及兩個很重要的類需要導入就是QApplication和QWidget,下面是用圖形化的方式完成測試。
(二)QtDesigner編寫
1、啟動QtDesigner
界面如下圖所示:
新建一個MainWindow並且拖動一個組件:
然后將其保存成ui文件。
2、轉成py文件
需要在轉成的py文件加入以下內容才能運行:
import sys if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())

# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test.ui' # # Created by: PyQt5 UI code generator 5.13.0 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets import sys class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(220, 180, 75, 23)) self.pushButton.setObjectName("pushButton") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "PushButton")) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())