Python按鈕的響應(yīng)事件詳解
import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QMainWindow from test import Ui_MainWindow from PyQt5.QtWidgets import QFileDialog class MyPyQT_Form(QMainWindow, Ui_MainWindow): def __init__(self): super(MyPyQT_Form, self).__init__() self.setupUi(self) # 實(shí)現(xiàn)pushButton_click()函數(shù),textEdit是我們放上去的文本框的id def pushButton_click(self): #self.showText.setText("你點(diǎn)擊了按鈕") dir_path = QFileDialog.getExistingDirectory(self, "choose directory", r"C:\Users\Administrator\Desktop") self.showText.setText(dir_path) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) my_pyqt_form = MyPyQT_Form() my_pyqt_form.show() sys.exit(app.exec_())
一、使用QT Desinger設(shè)計(jì)程序主界面
2.1 設(shè)計(jì)界面
在PyCharm中創(chuàng)建一個(gè)項(xiàng)目,然后點(diǎn)擊“Tools
”--“External Tools
”--“QTDesinger
”打開QT Desinger
然后向Form中拖入一個(gè)“Push Button
”和一個(gè)“Text Edit
”
2.2 指定點(diǎn)擊事件及其響應(yīng)函數(shù)
在工具欄點(diǎn)擊信號-槽編緝按鈕----光標(biāo)移動到“PushButton
”按鈕上----鼠標(biāo)左鍵點(diǎn)擊“PushButton
”不要松開--拖動光標(biāo)到Form
的任一位置后再松開鼠標(biāo)左鍵
經(jīng)過上邊的操作就出現(xiàn)了如下界面,“pushButton
”側(cè)選中“click()
”,“Form
”側(cè)點(diǎn)擊“Edit
”
在上邊“Slots”點(diǎn)擊綠色“+”按鈕,指定click事件的響應(yīng)函數(shù),名稱隨意定比如我這里命名為“pushButton_click()
”
(我們這里只是指定事件與響應(yīng)函數(shù)的關(guān)聯(lián)關(guān)系,函數(shù)是還沒實(shí)現(xiàn)的,后邊我們自行實(shí)現(xiàn))
這樣界面設(shè)計(jì)和事件關(guān)聯(lián)就完成了,我們下來選擇保存,將文件保存到項(xiàng)目的根目錄下
二、使用PyUIC將文件轉(zhuǎn)成python代碼
關(guān)閉QT Designer回到PyCharm,查看項(xiàng)目,可以看到只有剛才保存的PyQT_Form.ui文件而且該文件在PyCharm是打不開的
我們需要將這個(gè)文件轉(zhuǎn)成.py代碼才能使用
選中“PyQT_Form
”,在其上點(diǎn)擊鼠標(biāo)右鍵,到“External Tools
”中點(diǎn)擊“PyUIC
”
完后再看項(xiàng)目文件,就可以看到多了一個(gè)“PyQT_Form.py”,雙擊查看其內(nèi)容如下:
三、實(shí)現(xiàn)程序
應(yīng)該來說我們只要在上邊的“PyQT_Form.py”中,將需要的包導(dǎo)入---添加pushButton_click()
函數(shù)實(shí)現(xiàn)代碼----實(shí)例化Ui_Form
類,實(shí)現(xiàn)這三步程序應(yīng)該就差不多了
但是PyQT_Form.py是PyUIC文件按照“PyQT_Form.ui
”生成的,如果我們需要去調(diào)整PyQT_Form.ui(比如調(diào)整按鈕位置調(diào)整文本框大小,后續(xù)調(diào)整界面在實(shí)際編程中基本是必然需求)
調(diào)整完后重新生成PyQT_Form.py時(shí),PyUIC可不會管當(dāng)前我們已經(jīng)在PyQT_Form.py中寫了什么代碼,舊PyQT_Form.py會直接被新PyQT_Form.py覆蓋
也就是說,所有邏輯代碼我們都不應(yīng)當(dāng)寫入PyQT_Form.py文件(或者叫不要動PyQT_Form.py文件),我們新建一個(gè)文件在里邊創(chuàng)建一個(gè)子類(MyPyQT_Form)繼承PyQT_Form.py中的Ui_Form
3.1 實(shí)現(xiàn)代碼
在項(xiàng)目中新建一個(gè).py文件
3.2 運(yùn)行演示
右鍵選擇運(yùn)行
運(yùn)行界面如下
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Python如何通過ARIMA模型進(jìn)行時(shí)間序列分析預(yù)測
這篇文章主要介紹了Python如何通過ARIMA模型進(jìn)行時(shí)間序列分析預(yù)測問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python中實(shí)現(xiàn)文本預(yù)處理的方法小結(jié)
文本數(shù)據(jù)是數(shù)據(jù)科學(xué)和自然語言處理領(lǐng)域的關(guān)鍵組成部分,本文將深入探討Python中文本預(yù)處理的關(guān)鍵步驟,并提供豐富的示例代碼,希望對大家有所幫助2023-12-12Python使用re模塊實(shí)現(xiàn)信息篩選的方法
這篇文章主要介紹了Python使用re模塊實(shí)現(xiàn)信息篩選的方法,結(jié)合實(shí)例形式分析了Python正則re模塊進(jìn)行信息篩選操作的相關(guān)實(shí)現(xiàn)技巧及相關(guān)函數(shù)使用技巧,需要的朋友可以參考下2018-04-04