将光标移动到开始自动完成后,

问题描述 投票:1回答:1

我有一个小程序,我用于自动完成线路编辑。选择文本后,我的光标已经结束文本的。那么如何我的光标设置到起始位置?

我的代码:

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

python pyqt qlineedit qcompleter
1个回答
2
投票

假设你想将光标移动完成完成后,您可以使用完成者的activated信号与单次计时器,如下所示:

completer.activated.connect(
    lambda: QTimer.singleShot(0, lambda: edit.home(False)))
© www.soinside.com 2019 - 2024. All rights reserved.