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)擊信號(hào)-槽編緝按鈕----光標(biāo)移動(dòng)到“PushButton”按鈕上----鼠標(biāo)左鍵點(diǎn)擊“PushButton”不要松開--拖動(dòng)光標(biāo)到Form的任一位置后再松開鼠標(biāo)左鍵

經(jīng)過(guò)上邊的操作就出現(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)就完成了,我們下來(lái)選擇保存,將文件保存到項(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)該來(lái)說(shuō)我們只要在上邊的“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可不會(huì)管當(dāng)前我們已經(jīng)在PyQT_Form.py中寫了什么代碼,舊PyQT_Form.py會(huì)直接被新PyQT_Form.py覆蓋
也就是說(shuō),所有邏輯代碼我們都不應(yīng)當(dāng)寫入PyQT_Form.py文件(或者叫不要?jiǎng)覲yQT_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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Python?Pygame實(shí)戰(zhàn)之打磚塊游戲的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)經(jīng)典的游戲—打磚塊。玩家操作一根螢?zāi)簧纤降摹鞍糇印?,讓一顆不斷彈來(lái)彈去的“球”在撞擊作為過(guò)關(guān)目標(biāo)消去的“磚塊”的途中不會(huì)落到螢?zāi)坏紫?。感興趣的小伙伴可以了解一下2022-03-03
python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化
在圖像處理中,直方圖是非常重要,也是非常有用的一個(gè)處理要素。這篇文章主要介紹了python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
web自動(dòng)化測(cè)試Selenium點(diǎn)擊元素的常用方法
在Web自動(dòng)化測(cè)試中,Selenium提供多種點(diǎn)擊方法,常用的click()方法通過(guò)選中元素并觸發(fā)點(diǎn)擊事件,若click()方法不穩(wěn)定,可以采用JavaScript執(zhí)行點(diǎn)擊或使用ActionChains類模擬鼠標(biāo)點(diǎn)擊,需要的朋友可以參考下2024-09-09
python設(shè)置 matplotlib 正確顯示中文的四種方式
這篇文章主要介紹了python設(shè)置 matplotlib 正確顯示中文的四種方式,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-05-05
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從字典中提取子集的方法示例
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)從字典中提取子集的方法,涉及Python字典推導(dǎo)式的相關(guān)使用技巧,需要的朋友可以參考下2018-03-03
python獲取當(dāng)前文件路徑以及父文件路徑的方法
今天小編就為大家分享一篇python獲取當(dāng)前文件路徑以及父文件路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
使用PyQt5實(shí)現(xiàn)圖片查看器的示例代碼
這篇文章主要介紹了使用PyQt5實(shí)現(xiàn)圖片查看器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python設(shè)計(jì)模式之建造者模式實(shí)例詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之建造者模式,簡(jiǎn)單說(shuō)明了建造者模式的概念、原理,并結(jié)合實(shí)例形式分析了Python定義及使用建造者模式相關(guān)操作技巧,需要的朋友可以參考下2019-01-01

