赞
踩
需要制作一个快速录表的GUI,随手用pyqt简单写了一个,重写了focusOutEvent实现失焦刷新:
- class QLineEdit(QtWidgets.QLineEdit):
-
- def __init__(self, parent=None):
- super(QLineEdit,self).__init__(parent)
- self.in_signal = QtCore.pyqtSignal(dict) #定义信号
-
- def focusOutEvent(self, e):
- self.in_signal.emit({self.objectName(): self.text()}) #发送信号
结果多光标了。如下图
稍微查了下,都说要重新处理force,或者用eventFilter什么的,我只是想简单写一个,不要搞那么复杂。理论上原来的focusOutEvent是有处理的,不需要重写。
最后发现是我大意了,如果不想完全重写类方法,可以把原来的再继承回来(最好养成习惯,如非必要,重写的方法也需return),解决方法,直接super一下然后return即可:
return super(QLineEdit, self).focusOutEvent(e)
- class QLineEdit(QtWidgets.QLineEdit):
-
- def __init__(self, parent=None):
- super(QLineEdit,self).__init__(parent)
- self.in_signal = QtCore.pyqtSignal(dict) #定义信号
-
- def focusOutEvent(self, e):
- self.in_signal.emit({self.objectName(): self.text()}) #发送信号
- return super(QLineEdit, self).focusOutEvent(e)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。