我正在尝试让我的表单填充选定的行,以便我可以对其进行编辑

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

我正在使用 pysimplegui 并具有在组合框中给出结果的搜索功能。 有没有办法点击一个结果并让它用该结果填充表单以进行编辑。 我在 stackoverflow 帖子中找到了 combo.bind 和 combo.Widget.event_generate 片段。 我查看了 pysimplegui.org 中的表格部分,但找不到我要找的东西。我看了一些 youtube 视频,但仍然不开心。 有没有我可以使用但我似乎找不到的功能或方法。 如果有人能指出我正确的方向,我将不胜感激,谢谢,伊恩

combo = window['-SEARCH-']
combo.bind("<Return>","_Enter")

    while True:
        event, values = window.read() #values is a list in Python
        if event == '-SEARCH-' + '_Enter':
            surnames = retrieve_info(values,window)
            if len(surnames) > 0:
                window['-SEARCH-'].update(values=surnames, value=values['-SEARCH-'])
                combo.Widget.event_generate('<Button-1>')

这是我的 retireve_info 函数

def retrieve_info(values,window):
    surnames = []
    if values['-SEARCH-'] == '':
        sg.PopupError('Please enter a valid surname')
    else:
        sSql = "SELECT SURNAME FROM PATIENT WHERE SURNAME like '%" + values['-SEARCH-'] + "%';"
        conn = create_connection(database)
        c = conn.cursor()
        c.execute(sSql)
        records = c.fetchall()
        for record in records:
            surnames.append(record[0])
        conn.commit()
        conn.close()
    return surnames

看看我的应用程序 一旦我选择了一个人,我就会寻找他们的信息来填充表格,这样我就可以在更新之前对其进行编辑。

python mysql edit pysimplegui
1个回答
0
投票

你错过了什么——当你更新 GUI 小部件时,GUI 不会立即更新。

尝试在它之后和

window.refresh()
之前调用
combo.Widget.event_generate('<Button-1>')

import PySimpleGUI as sg

layout = [
    [sg.Combo([1,2,3,4,5], key='COMBO')],
    [sg.Button("Check")],
]
window = sg.Window('Title', layout)

while True:

    event,values = window.read()

    if event == sg.WIN_CLOSED:
        break
    elif event == 'Check':
        window['COMBO'].update(values=["A", "B", "C", "D", "E"])
        window.refresh()
        window['COMBO'].widget.event_generate('<Button-1>')

window.close()
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.