最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號的方法

 更新時(shí)間:2019年06月25日 22:29:37   作者:sylgdxsgx  
今天小編就為大家分享一篇PyQt5實(shí)現(xiàn)QLineEdit添加clicked信號的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

大家都知道很多控件是沒有clicked信號的,我在網(wǎng)上找了很多終于總結(jié)出2個(gè)方法來實(shí)現(xiàn)類似需求,比如給QLineEdit添加clicked信號,這樣的話,當(dāng)點(diǎn)擊輸入框時(shí)就會發(fā)送clicked信號,其它控件也是一樣的做法,如下:

方法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信號出去
    else:
      pass
  return False

test.py

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys

#方法1
class mylineedit(QLineEdit):
  clicked=pyqtSignal()  #定義clicked信號
  def mouseReleaseEvent(self, QMouseEvent):
    if QMouseEvent.button()==Qt.LeftButton:
      self.clicked.emit()   #發(fā)送clicked信號

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信號是W1的信號而非edit的信號,但可以實(shí)現(xiàn)焦點(diǎn)落到edit時(shí)觸發(fā)信號

  # 方法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信號出去
      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信號的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

闽侯县| 色达县| 房产| 寻乌县| 福泉市| 岢岚县| 旬邑县| 新蔡县| 巴东县| 都匀市| 兴安盟| 余干县| 洪湖市| 渝北区| 台山市| 鲁山县| 井冈山市| 修武县| 尤溪县| 无为县| 衡东县| 东海县| 沧州市| 通海县| 滁州市| 抚松县| 城市| 富源县| 洛宁县| 时尚| 江北区| 苍山县| 沭阳县| 荃湾区| 卫辉市| 正宁县| 遂平县| 荔浦县| 和静县| 徐水县| 商河县|