Search code examples
pythonpyqt4qlineedit

How to connect QLineEdit focusOutEvent


I have designed a window with a QLineEdit in PyQt4 with the help of Designer. I converted .ui to .py using pyuic4. I created another .py file and imported and subclassed Ui_Class.

I want to perform some task when QLineEdit lost focus.

Just line button clicked event i to connect QLineEdit Lost focus event


Solution

  • Use an eventFilter:

    class Filter(QtCore.QObject):
        def eventFilter(self, widget, event):
            # FocusOut event
            if event.type() == QtCore.QEvent.FocusOut:
                # do custom stuff
                print 'focus out'
                # return False so that the widget will also handle the event
                # otherwise it won't focus out
                return False
            else:
                # we don't care about other events
                return False
    

    And in your window:

    # ...
    self._filter = Filter()
    # adjust for your QLineEdit
    self.ui.lineEdit.installEventFilter(self._filter)