delphi gui编辑工具源码_Python 快速构建一个简单的 GUI 应用
?點擊上方“AirPython”,選擇“加為星標”
第一時間關注 Python 技術干貨!
1. 介紹
Python GUI 常用的 3 種框架是:Tkinter、wxpython、PyQt5
PyQt5 基于 Qt,是 Python 和 Qt 的結合體,可以用 Python 語言編寫跨平臺的 GUI 應用程序
相比 Tkiner和 wxpython,PyQt5 利用自帶的 Qt Designer 可視化工具進行界面設計,可以非常快速地開發出一款功能強大、界面美觀的 GUI 應用程序
2. 安裝
以 Mac OSX 為例,PC 下的操作類似。
首先,在系統內部安裝 qt 應用
#?安裝qtbrew?install?qt
然后,在 Python 虛擬環境下安裝?sip 和?pyqt5 兩個依賴庫
#?安裝依賴sippip3?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?文件
最后,可以直接在 Pycharm 中快速打開 Designer 界面、ui 轉 py 文件這兩個操作。
3. 常用功能介紹
QtDesigner 是一個非常強大的 GUI 設計工具,生成的文件格式為:*.ui
QtDesigner 主要包含下面 6 部分:
主設計界面區
控件區
控件屬性區
信號和槽函數區
資源圖片區
控件結構樹區
其中,
主設計界面區:用于窗口編輯,最終的 GUI 展示區域
控件區:包含文本、輸入框、選擇器、容器等控件,可以直接拖拉到窗口進行布局
屬性區:用于定義控件的屬性,包含:內容、字體大小、寬和高等
信號和槽函數區:可以很方便地為一個控件指定一個事件監聽,比如:單擊、選中事件等
資源圖片區域:用于導入本地的資源文件,在控件中使用,比如:圖片
控件結構樹區:可以很直觀地顯示控件間的結構關系
4.來個例子
第 1 步,我們從控件區拖 3 個按鈕和 2 個輸入框到界面設計區域
第 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?sysfrom?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 界面的邏輯,實際項目開發過程中很少變動。
5.總結
通過上面的例子發現,使用 PyQt5 構建 GUI 真的很方便,大部分的工作都可以在 QtDesigner 設計完成,然后回歸到 Pycharm中,轉為 py 文件、編寫信號和槽函數,就能快速開發 GUI 圖形用戶界面。
我已經將全部源碼上傳到后臺,關注公眾號后回復「?PyQt5?」即可獲得全部源碼。
如果你覺得文章還不錯,請大家點贊分享下。你的肯定是我最大的鼓勵和支持。
總結
以上是生活随笔為你收集整理的delphi gui编辑工具源码_Python 快速构建一个简单的 GUI 应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑回归python正则化 选择参数_吴
- 下一篇: python并行计算_Python并行计