当前位置:   article > 正文

pyqt5 QLineEdit重写focusOutEvent导致多光标_pyqt5 qlineedit focusout

pyqt5 qlineedit focusout

需要制作一个快速录表的GUI,随手用pyqt简单写了一个,重写了focusOutEvent实现失焦刷新:

  1. class QLineEdit(QtWidgets.QLineEdit):
  2. def __init__(self, parent=None):
  3. super(QLineEdit,self).__init__(parent)
  4. self.in_signal = QtCore.pyqtSignal(dict) #定义信号
  5. def focusOutEvent(self, e):
  6. self.in_signal.emit({self.objectName(): self.text()}) #发送信号

结果多光标了。如下图

稍微查了下,都说要重新处理force,或者用eventFilter什么的,我只是想简单写一个,不要搞那么复杂。理论上原来的focusOutEvent是有处理的,不需要重写。

最后发现是我大意了,如果不想完全重写类方法,可以把原来的再继承回来(最好养成习惯,如非必要,重写的方法也需return),解决方法,直接super一下然后return即可:

return super(QLineEdit, self).focusOutEvent(e)

  1. class QLineEdit(QtWidgets.QLineEdit):
  2. def __init__(self, parent=None):
  3. super(QLineEdit,self).__init__(parent)
  4. self.in_signal = QtCore.pyqtSignal(dict) #定义信号
  5. def focusOutEvent(self, e):
  6. self.in_signal.emit({self.objectName(): self.text()}) #发送信号
  7. return super(QLineEdit, self).focusOutEvent(e)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/897399
推荐阅读
相关标签
  

闽ICP备14008679号