You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在PySimpleGUI输入框填入文本后如何自动将光标定位到文本末尾

解决方案

你可以通过在输入框的内容变更事件中调用控件的set_cursor_position方法实现光标自动定位到文本最右侧,具体实现逻辑如下:

你当前已经为输入框配置了enable_events=True参数,每次输入框内容变化时都会触发对应key的事件,不需要额外修改布局代码,只需要在事件循环中捕获输入框的事件,将光标位置设置为当前输入文本的总长度即可。

完整实现代码如下:

import PySimpleGUI as sg

sg.theme('DarkAmber')

lengthOfInputBar = 40
layout = [ 
    [sg.Text(text='Valgrind Message .txt File Location'), 
     sg.Input(default_text='', size=(lengthOfInputBar, 1), 
              enable_events=True, key='-VALGRIND_OUTPUT_TXT_INP-'), 
     sg.FileBrowse(file_types=[('TXT (*.txt)', '*.txt')])],
    [sg.Button('确定'), sg.Button('退出')]
]

window = sg.Window('示例窗口', layout)

while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, '退出'):
        break
    # 处理输入框内容变更事件
    if event == '-VALGRIND_OUTPUT_TXT_INP-':
        current_text = values['-VALGRIND_OUTPUT_TXT_INP-']
        # 光标位置设置为文本长度,即文本最右侧
        window['-VALGRIND_OUTPUT_TXT_INP-'].set_cursor_position(len(current_text))

window.close()

该方案同时兼容手动输入和通过FileBrowse选择文件自动填充内容的场景,两种场景下光标都会自动定位到文本末尾。

内容的提问来源于stack exchange,提问作者Arindam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:54:08