PyQt5实现QLineEdit添加clicked信号的方法


Posted in Python onJune 25, 2019

大家都知道很多控件是没有clicked信号的,我在网上找了很多终于总结出2个方法来实现类似需求,比如给QLineEdit添加clicked信号,这样的话,当点击输入框时就会发送clicked信号,其它控件也是一样的做法,如下:

方法1:创建一个继承自QLineEdit的类,然后重写mousePressEvent。

class MyLineEdit(QLineEdit):
  clicked = pyqtSignal()
  def mouseReleaseEvent(self, QMouseEvent):
    if QMouseEvent.button()==Qt.LeftButton:
      self.clicked.emit()

方法2:重写eventFilter事件也可以达到类似的效果。

def eventFilter(self, widget, event):
  if widget == self.edit:
    if event.type() == QEvent.FocusOut:
      pass
    elif event.type() == QEvent.FocusIn:
      self.clicked.emit()   #当焦点再次落到edit输入框时,发送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()   #发送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的信号,但可以实现焦点落到edit时触发信号

  # 方法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()   #当焦点再次落到edit输入框时,发送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实现QLineEdit添加clicked信号的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
全面了解python中的类,对象,方法,属性
Sep 11 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python版中国省市经纬度
Feb 11 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
Feb 26 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
Python实现异步IO的示例
Nov 05 Python
Python实现位图分割的效果
Nov 20 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 #Python
PyQt5响应回车事件的方法
Jun 25 #Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 #Python
用python做游戏的细节详解
Jun 25 #Python
Python二进制文件读取并转换为浮点数详解
Jun 25 #Python
python print出共轭复数的方法详解
Jun 25 #Python
python安装pil库方法及代码
Jun 25 #Python
You might like
用php实现选择排序的解决方法
2013/05/04 PHP
载入进度条 效果
2006/07/08 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
webpack3之loader全解析
2017/10/26 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
python使用邻接矩阵构造图代码示例
2017/11/10 Python
Python决策树分类算法学习
2017/12/22 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
tensorflow 环境变量设置方式
2020/02/06 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
学生会干部自荐信
2014/02/04 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python