python - 自动完成后将光标移至开头

标签 python pyqt qlineedit qcompleter

我有一个小程序,我使用行编辑来自动完成。选择文本后,我的光标移至文本末尾。那么如何将光标设置到起始位置呢?

我的代码:

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

最佳答案

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

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

关于python - 自动完成后将光标移至开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603725/

相关文章:

python - 无法重命名 pandas DataFrame 中的第一列

python - 在 QTableView 单元格中绘制可调整的文本

python - QtableView单元格在窗体关闭时失去焦点时如何保存正在编辑的数据

qt - 将 QDialog 嵌入到 QWidget 中的简单方法

c++ - QTableWidget 和 QLineEdit - 位置和文本内容

c++ - 在 Qt 中如何在 QLineEdit 中使用 QFileDialog 添加文件

python - 如何设置环境变量 R_user 以在 python 中使用 rpy2

python - 在 Numpy 数组中找到高原

python - pad_token_id 在拥抱面更改器(mutator)中不起作用

qt - 检测 QLineEdit 或 QPushButton 上的输入