PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號(hào)的方法
大家都知道很多控件是沒有clicked信號(hào)的,我在網(wǎng)上找了很多終于總結(jié)出2個(gè)方法來實(shí)現(xiàn)類似需求,比如給QLineEdit添加clicked信號(hào),這樣的話,當(dāng)點(diǎn)擊輸入框時(shí)就會(huì)發(fā)送clicked信號(hào),其它控件也是一樣的做法,如下:
方法1:創(chuàng)建一個(gè)繼承自QLineEdit的類,然后重寫mousePressEvent。
class MyLineEdit(QLineEdit):
clicked = pyqtSignal()
def mouseReleaseEvent(self, QMouseEvent):
if QMouseEvent.button()==Qt.LeftButton:
self.clicked.emit()
方法2:重寫eventFilter事件也可以達(dá)到類似的效果。
def eventFilter(self, widget, event):
if widget == self.edit:
if event.type() == QEvent.FocusOut:
pass
elif event.type() == QEvent.FocusIn:
self.clicked.emit() #當(dāng)焦點(diǎn)再次落到edit輸入框時(shí),發(fā)送clicked信號(hào)出去
else:
pass
return False
test.py
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
#方法1
class mylineedit(QLineEdit):
clicked=pyqtSignal() #定義clicked信號(hào)
def mouseReleaseEvent(self, QMouseEvent):
if QMouseEvent.button()==Qt.LeftButton:
self.clicked.emit() #發(fā)送clicked信號(hào)
class Wind(QDialog):
clicked=pyqtSignal()
def __init__(self):
super().__init__()
self.lnd=mylineedit()
self.edit=QLineEdit()
self.edit.installEventFilter(self) #方法2(1)
vb=QVBoxLayout()
vb.addWidget(self.lnd)
vb.addWidget(self.edit)
self.setLayout(vb)
self.lnd.clicked.connect(self.showData)
self.clicked.connect(self.showData) #該clicked信號(hào)是W1的信號(hào)而非edit的信號(hào),但可以實(shí)現(xiàn)焦點(diǎn)落到edit時(shí)觸發(fā)信號(hào)
# 方法2(2)
def eventFilter(self, widget, event):
if widget == self.edit:
if event.type() == QEvent.FocusOut:
pass
elif event.type() == QEvent.FocusIn:
self.clicked.emit() #當(dāng)焦點(diǎn)再次落到edit輸入框時(shí),發(fā)送clicked信號(hào)出去
else:
pass
return False
def showData(self):
print('ok')
if __name__=="__main__":
app=QApplication(sys.argv)
w=Wind()
w.show()
sys.exit(app.exec_())
以上這篇PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號(hào)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)在函數(shù)圖像上添加文字和標(biāo)注的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)在函數(shù)圖像上添加文字和標(biāo)注的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Paddle模型性能分析工具Profiler定位瓶頸點(diǎn)優(yōu)化程序詳解
這篇文章主要為大家介紹了Paddle模型性能分析工具Profiler定位瓶頸點(diǎn)優(yōu)化程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
利用python實(shí)現(xiàn)全屏愛心雨向喜歡的人表白
馬上520了,教大家用Python做一個(gè)下愛心雨的特效,這篇文章主要給大家介紹了關(guān)于利用python實(shí)現(xiàn)全屏愛心雨向喜歡的人表白的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Python使用描述器實(shí)現(xiàn)ORM模型的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python描述器實(shí)現(xiàn)ORM模型,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Python開發(fā)如何在ubuntu 15.10 上配置vim
這篇文章主要介紹了Python開發(fā)如何在ubuntu 15.10 上配置vim 的相關(guān)資料,需要的朋友可以參考下2016-01-01
Python3使用requests包抓取并保存網(wǎng)頁(yè)源碼的方法
這篇文章主要介紹了Python3使用requests包抓取并保存網(wǎng)頁(yè)源碼的方法,實(shí)例分析了Python3環(huán)境下requests模塊的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03

