如何 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()
我想点击一个列表框值(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()