PySimpleGUI:在多行小部件中设置和获取光标位置?

PySimpleGUI: Set and get the cursor position in a multiline widget?

有没有办法在 PySimpleGUI 的多行小部件中获取光标的位置,存储它并将光标再次放回该小部件文本中的定义位置?

下面是我到目前为止编写的代码。我的目标是,当在上方 window 中输入“jk”时,光标会向下移动到输入行(有效)。用户可以在那里编写命令并完成输入按下(我还没有完成)。

现在的问题是如何让光标在上部 window 跳回之前的相同位置?!

import PySimpleGUI as sg

layout = [  [sg.Multiline(key = 'editor',
                          size = (50, 10), 
                          focus = True, 
                          enable_events = True)],
            [sg.InputText(key ='command', size = (45, 1), ),], ]

window = sg.Window('editor', layout)

while True:
    event, values = window.read()

    if 'jk' in values['editor']:
        # delete jk and jump down in the command line #
        window['editor'].update(values['editor'].replace('jk', ''))
        window.Element('command').SetFocus(force = True)
        
    if event in ('Close Window', None): 
        break
    
window.close()

感谢任何帮助,因为没有关于在 PySimpleGui 中设置或获取光标位置的文档。提前致谢!

此处需要 Tkinter 代码

示例代码显示了它是如何工作的,“jk”从“M1”跳到“M2”,键从“M2”跳回到“M1”。

import PySimpleGUI as sg

sg.theme("DarkBlue")
sg.set_options(font=('Courier New', 16))

layout = [
    [sg.Multiline('', size=(40, 5), enable_events=True, key='M1')],
    [sg.Multiline('', size=(40, 5), key='M2')],
]
window = sg.Window("Title", layout, finalize=True)

m1, m2 = window["M1"], window['M2']
m2.bind("<Return>", "_Return")

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event == "M1" and 'jk' in values["M1"]:
        m1.Widget.delete("insert-2c", "insert")
        m2.set_focus()
    elif event == "M2_Return":
        m1.set_focus()
    print(event, values)

window.close()