2016-11-13 4 views
0

Я хочу, чтобы QCompleter начинал прогнозировать только после определенного количества букв в QLineEdit. Я написал простые классы из QLineEdit и QCompleter, но я не знаю, как добавить эту функциональность.pyqt - активировать QCompleter после определенного количества букв в QLineEdit

class Completer(QtWidgets.QCompleter): 

    def __init__(self, parent=None): 
     super(Completer, self).__init__(parent) 

     self.setCaseSensitivity(Qt.CaseInsensitive) 
     self.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) 
     self.setFilterMode(Qt.MatchStartsWith) 


class LineEditCompleter(QtWidgets.QLineEdit): 

    def __init__(self, parent=None): 
     super(LineEditCompleter, self).__init__(parent) 
     self.completer = Completer(self) 
     self.setCompleter(self.completer) 

Я попытался переопределить textChanged от QLineEdit к setCompleter(None), если длина текста меньше 3 и активировать его снова, если более чем на 3, но она не работает, кажется, завершившим удаляется, если я использую setCompleter(None).

Есть ли возможность достичь этого?

Спасибо.

ответ

0

Существует довольно хорошо объяснено blog. Но вам нужно повторно реализовать QlineEdit и QCompleter, чтобы получить то, что вы ищете. Если вы не можете найти то, что вы смотрите на этот блог, сообщите нам об этом.

+0

Это сообщение в блоге не отвечает на вопрос OPs. Вы действительно попробовали код? – ekhumoro

+0

@ Ачаян, я не нашел то, что искал в этом блоге. – SyedElec

Смежные вопросы