Переместить курсор в начало после автозаполнения - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть небольшая программа, где я использовал редактирование строки для автозаполнения.После выделения текста мой курсор переходит в конец текста.Итак, как установить мой курсор в начальную позицию?

Мой код:

import sys
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QApplication, QCompleter, QLineEdit, QStringListModel

def get_data(model):
   model.setStringList(["completion_xxxxxxxxxx", "data_yyyyyyyyyy", "goes_ccccccccc", "here"])

if __name__ == "__main__":

    app = QApplication(sys.argv)
    edit = QLineEdit()
    edit.setCursorPosition(0)
    completer = QCompleter()
    edit.setCompleter(completer)

    model = QStringListModel()
    completer.setModel(model)
    get_data(model)

    edit.show()
    sys.exit(app.exec_())

enter image description here

Но я хочу показать этокак это:

enter image description here

1 Ответ

0 голосов
/ 09 февраля 2019

Если вы хотите, чтобы курсор двигался после завершения, вы можете использовать сигнал activated завершителя с таймером одиночного выстрела, например:

completer.activated.connect(
    lambda: QTimer.singleShot(0, lambda: edit.home(False)))
...