class AddNewWord(QLineEdit): def __init__(self): super(AddNewWord, self).__init__(None) self.setWindowTitle("AddNewWord") completer = QCompleter(self) self.string_list_model = QStringListModel(self) completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setModel(self.string_list_model) self.setCompleter(completer) self.connect(self, SIGNAL("editingFinished()"), self.editComplete) self.word_list = QStringList() def editComplete(self): text = self.text() if QString.compare(text, QString("")) != 0: is_contains = self.word_list.contains(text, Qt.CaseInsensitive) if not is_contains: self.word_list << text self.string_list_model.setStringList(self.word_list)