code: def eventFilter(self, object, event):
          
          # popup the editor when clicking in the line edit for a checkable state
          if object == self.lineEdit() and self.isEnabled():
              if not self.isCheckable():
                  return super(XComboBox, self).eventFilter(object, event)
              
              # show the popup when the user clicks on it
              elif event.type() == event.MouseButtonPress:
                  self.showPopup()
              
              # eat the wheel event when the user is scrolling
              elif event.type() == event.Wheel:
                  return True
              
          # make sure we're looking for the checkable popup
          elif object == self._checkablePopup:
              if event.type() == event.KeyPress and \
                   event.key() in (Qt.Key_Escape, Qt.Key_Return, Qt.Key_Enter):
                  object.close()
              
              elif event.type() == event.MouseButtonPress:
                  if not object.geometry().contains(event.pos()):
                      object.close()
          
          return super(XComboBox, self).eventFilter(object, event)
docs: Filters events for the popup widget.
          
          :param      object | <QObject>
                      event  | <QEvent>