【问题标题】:How do I use the double click signal in the QLineEdit widget?如何在 QLineEdit 小部件中使用双击信号?
【发布时间】:2021-12-28 16:35:39
【问题描述】:
我有一个 QLineEdit 小部件,我想在它上面使用双击事件。我该怎么做?
def __init__(self):
#... other codes
self.title = QLineEdit()
self.title.returnPressed.connect(self.lockTitle)
#like this -> 'self.title.doubleClicked.connect(self.unlockTitle)'
#... other codes
def lockTitle(self):
self.title.setDisabled(True)
def unlockTitle(self):
self.title.setDisabled(False)
【问题讨论】:
标签:
python
python-3.x
pyqt5
qlineedit
【解决方案1】:
一种可能的解决方案是通过创建在 mouseDoubleClickEvent 方法中发出的新信号来创建自定义 QLineEdit,但在您的情况下,问题是 QLineEdit 被禁用并且没有调用该方法而不是使用该方法你应该使用event 方法:
class LineEdit(QLineEdit):
doubleClicked = pyqtSignal()
def event(self, event):
if event.type() == QEvent.Type.MouseButtonDblClick:
self.doubleClicked.emit()
return super().event(event)
self.title = LineEdit()
self.title.returnPressed.connect(self.lockTitle)
self.title.doubleClicked.connect(self.unlockTitle)