如何在 QLineEdit 小部件中使用双击信号?
How do I use the double click signal in the QLineEdit widget?
我有一个 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)
一个可能的解决方案是通过创建一个在 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)
我有一个 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)
一个可能的解决方案是通过创建一个在 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)