如何 return PySimpleGUI 列表框中所选值的元组列表中的第二项

How to return 2nd item from a tuple list for chosen value in PySimpleGUI listbox

我想点击一个列表框值(attriblist)并显示相关的经文(biglist 元组中的第二个值)。我在将一个列表与第二个列表同步时遇到问题。不过,可能更多的是 python 问题而不是 PySIMpleGUI 问题。

import PySimpleGUI as sg

biglist = [('Abundant Life','John 10:10'),
('Angels','Psalm 103:20'), 
('Boldness','Proverbs 28:1')]

attriblist = []

for idx, (promise, verse) in enumerate(biglist):    
    attriblist.append(str(promise))
  
sg.theme('Tan Blue')

layout = [[sg.Text('Pick an attribute and see verse of promise.')],
          [sg.Listbox(attriblist, size=(20, 20), key='-LIST-', enable_events=True)],
          [sg.Multiline(size = (58, 5), key = '_multiline_', autoscroll = False, disabled=True)],
          [sg.Button('Exit')]]

window = sg.Window("God's Promises", layout)

while True: 

    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    for index,verse in enumerate(values['-LIST-']):
        #print(verse)
        for idx, (promise, verse) in enumerate(biglist):
            window['_multiline_'].update(verse)
            

window.close()

这个怎么样,

import PySimpleGUI as sg

biglist = [
    ('Abundant Life','John 10:10'),
    ('Angels','Psalm 103:20'),
    ('Boldness','Proverbs 28:1')
]
attrib_dict = {key:value for key, value in biglist}
attrib_list = sorted(attrib_dict.keys())

sg.theme('Tan Blue')
sg.set_options(font=('Courier New', 12))

layout = [
    [sg.Text('Pick an attribute and see verse of promise.')],
    [sg.Listbox(attrib_list, size=(20, 10), key='-LIST-', enable_events=True),
     sg.Multiline(size = (60, 10), key = '-MULTILINE-', autoscroll = False, disabled=True)],
    [sg.Button('Exit')]]

window = sg.Window("God's Promises", layout, finalize=True)
window['-MULTILINE-'].Widget.configure(spacing1=1)

while True:

    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == '-LIST-':
        selection = values[event][0]
        window['-MULTILINE-'].update(value=attrib_dict[selection])

window.close()