带QLineEdi的MouseDoubleClick事件

2024-09-28 17:04:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如何让一个QLineEdit在默认情况下未启用,但在接收到mouseDoubleClickEvent()时启用它?在

如何实现mouseDoubleClickEvent()?在

当我尝试以下操作时,总是会出现“参数不足”的错误:

if self.MyQLineEdit.mouseDoubleClickEvent() == True:
    do something

Tags: selftrue参数if错误情况dosomething
1条回答
网友
1楼 · 发布于 2024-09-28 17:04:22

不能使用以下语句设置该事件:

if self.MyQLineEdit.mouseDoubleClickEvent () == True:

有两种可能的选择:

  1. 第一个是从QLineEdit继承:

^{pr2}$
  1. 安装事件筛选器:

import sys

from PyQt4 import QtGui, QtCore

class Widget(QtGui.QWidget):
    def __init__(self, *args, **kwargs):
        QtGui.QWidget.__init__(self, *args, **kwargs)
        self.le = QtGui.QLineEdit()        
        lay = QtGui.QVBoxLayout(self)
        lay.addWidget(self.le)

        self.le.installEventFilter(self)

    def eventFilter(self, watched, event):
        if watched == self.le and event.type() == QtCore.QEvent.MouseButtonDblClick:
            print("pos: ", event.pos())
            # do something
        return QtGui.QWidget.eventFilter(self, watched, event)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

相关问题 更多 >