Beispiel #1
0
 def keyPressEvent(self, evt):
     if evt.key() in (Qt.Key_Up, Qt.Key_Down):
         # show completer on arrow key up/down
         if not self.completer.popup().isVisible():
             self.showCompleter()
         return
     if (evt.key() == Qt.Key_Tab and evt.modifiers() & Qt.ControlModifier):
         # select next completion
         if not self.completer.popup().isVisible():
             self.showCompleter()
         index = self.completer.currentIndex()
         self.completer.popup().setCurrentIndex(index)
         cur_row = index.row()
         if not self.completer.setCurrentRow(cur_row + 1):
             self.completer.setCurrentRow(0)
         return
     if evt.key() in (Qt.Key_Enter, Qt.Key_Return):
         # apply first completion if no suggestion selected
         selected_row = self.completer.popup().currentIndex().row()
         if selected_row == -1:
             self.completer.setCurrentRow(0)
             index = self.completer.currentIndex()
             self.completer.popup().setCurrentIndex(index)
         self.hideCompleter()
         QWidget.keyPressEvent(self, evt)
         return
     QLineEdit.keyPressEvent(self, evt)
     if not evt.text():
         # if it's a modifier, don't show
         return
     if evt.key() not in (
         Qt.Key_Enter, Qt.Key_Return, Qt.Key_Escape, Qt.Key_Space,
         Qt.Key_Tab, Qt.Key_Backspace, Qt.Key_Delete):
         self.showCompleter()