如何在 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)