Автозаполнение нескольких слов [дубликат]

Проблема в том, что ваш номер требует большей точности, чем JavaScript.

Можете ли вы отправить номер в виде строки? Разделяется в двух частях?

0
задан SyedElec 25 February 2016 в 14:09
поделиться

1 ответ

Я нашел ответ, если он может помочь другим, я создал класс для Completer:

class Completer(QtWidgets.QCompleter):

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

        self.setCaseSensitivity(Qt.CaseInsensitive)
        self.setCompletionMode(QtWidgets.QCompleter.PopupCompletion)
        self.setWrapAround(False)

    # Add texts instead of replace
    def pathFromIndex(self, index):
        path = QtWidgets.QCompleter.pathFromIndex(self, index)

        lst = str(self.widget().text()).split(',')

        if len(lst) > 1:
            path = '%s, %s' % (','.join(lst[:-1]), path)

        return path

    # Add operator to separate between texts
    def splitPath(self, path):
        path = str(path.split(',')[-1]).lstrip(' ')
        return [path]

И я использую его в классе для QLineEdit, например:

class TextEdit(QtWidgets.QLineEdit):

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

        self.setPlaceholderText("example : ")
        self._completer = Completer(self)
        self.setCompleter(self._completer)
2
ответ дан SyedElec 18 August 2018 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: