您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么用PyQt5快速構建一個簡單的GUI應用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Python GUI 常用的 3 種框架是:Tkinter、wxpython、PyQt5
PyQt5 基于 Qt,是 Python 和 Qt 的結合體,可以用 Python 語言編寫跨平臺的 GUI 應用程序
相比 Tkiner和 wxpython,PyQt5 利用自帶的 Qt Designer 可視化工具進行界面設計,可以非常快速地開發出一款功能強大、界面美觀的 GUI 應用程序
以 Mac OSX 為例,PC 下的操作類似。
首先,在系統內部安裝 qt 應用
# 安裝qt brew install qt
然后,在 Python 虛擬環境下安裝 sip 和 pyqt5 兩個依賴庫
# 安裝依賴sip pip3 install sip # 安裝依賴pyqt5 pip3 install pyqt5
接著,在 Pycharm 中配置 External Tools,新建 Qt Designer 和 PyUIC 兩個命令
# Qt Designer 配置 Program:/usr/local/Cellar/qt/5.14.1/libexec/Designer.app Working directory:/usr/local/Cellar/qt/5.14.1/libexec # PyUIC # Python環境路徑 Program:/usr/local/bin/python3.7 # 參數 Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py # 路徑【固定】 Working directory:$ProjectFileDir$
其中,在第一步安裝 Qt 應用文件夾下,找到 Designer.app 和 libexec 兩個文件,配置進去
由于 QtDesigner 生成的文件是 *.ui 文件,需要借助 pyqt5 中的 pyuic,將 ui 文件轉換為 Python 文件
QtDesigner 是一個非常強大的 GUI 設計工具,生成的文件格式為:*.ui
第 2 步,選中控件,鼠標右鍵為控件新增屬性,比如:控件內容、控件名稱(相當于id),對于一些復雜的屬性設置,需要在屬性區域單獨進行設置
編輯完 UI 界面之后,會在本地生成一個 *.ui 的文件
第 3 步,選擇 *.ui 文件,在 Pycharm 中使用 PyUIC 命令,將 ui 文件轉換為 py 文件
# ui文件轉為py文件 from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 790) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(130, 80, 111, 41)) self.pushButton.setObjectName("pushButton") self.username = QtWidgets.QLineEdit(self.centralwidget) self.username.setGeometry(QtCore.QRect(260, 80, 271, 41)) self.username.setObjectName("username") self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(130, 150, 111, 41)) self.pushButton_2.setObjectName("pushButton_2") self.password = QtWidgets.QLineEdit(self.centralwidget) self.password.setGeometry(QtCore.QRect(260, 150, 271, 41)) self.password.setObjectName("password") self.login = QtWidgets.QPushButton(self.centralwidget) self.login.setGeometry(QtCore.QRect(260, 230, 141, 61)) self.login.setObjectName("login") MainWindow.setCentralWidget(self.centralwidget) 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", "用戶名:")) self.pushButton_2.setText(_translate("MainWindow", "密碼:")) self.login.setText(_translate("MainWindow", "登錄"))
第 4 步,為按鈕添加點擊事件
使用 控件名.信號.connect(槽函數) 的形式,為控件添加一個點擊事件的監聽
class Ui_MainWindow(object): def setupUi(self, MainWindow): # 為登錄按鈕指定事件 # clicked:信號,login_met:槽函數 self.login.clicked.connect(self.login_met) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def login_met(self): """ 登錄事件(槽函數) :return: """ # 用戶名輸入框的內容 username = self.login.text() # 密碼輸入框的內容 password = self.password.text() print("輸入的用戶名是:", username, "密碼是:", password)
第 5 步,展示界面
最后,新建一個 py 文件,實例化一個 QApplication 對象,將上面創建的 MainWindow 展示出來即可。
import sys from PyQt5.QtWidgets import QApplication, QMainWindow # 界面文件 from temp import * class CustomUI(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(CustomUI, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) cutomUI = CustomUI() cutomUI.show() sys.exit(app.exec_())
需要注意的是,這部分內容僅僅是調用顯示 GUI 界面的邏輯,實際項目開發過程中很少變動。
感謝各位的閱讀!關于“怎么用PyQt5快速構建一個簡單的GUI應用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。