#python #pysimplegui
Вопрос:
Я работаю над простым исполняемым файлом, который позволяет мне выбрать элемент таблицы.
В настоящее время, когда я выбираю элемент таблицы, появляется всплывающее окно с уведомлением о том, что я выбрал конкретный элемент
Тем не менее, я хочу печатать элемент в большом пустом пространстве рядом с таблицей каждый раз, когда я выбираю элемент, однако найденные мной решения не совсем соответствуют тому, что я имею в виду. Есть ли решение моего затруднительного положения?
import PySimpleGUI as sg
choices = ('Windows Enterprise 10','Windows Server 19','MacOS','Ubuntu','Debian')
layout = [ [sg.Text('Pick an OS')],
[sg.Listbox(choices, size=(20, 5), key='-OS-', enable_events=True)] ]
window = sg.Window('Pick an OS', layout,size=(500,200))
while True: # the event loop
event, values = window.read()
if event == sg.WIN_CLOSED:
break
if values['-OS-']: # if something is highlighted in the list
sg.popup(f"The OS you selected is: {values['-OS-'][0]}")
window.close()
Ответ №1:
import PySimpleGUI as sg
choices = ('Windows Enterprise 10','Windows Server 19','MacOS','Ubuntu','Debian')
layout = [[sg.Text('Pick an OS')],
[sg.Listbox(choices, size=(20, 5), key='-OS-', enable_events=True),
sg.Text(key='OUT', size=(30,5), text_color='#000000',background_color='#ffffff')]]
window = sg.Window('Pick an OS', layout,size=(500,200))
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
else:
choice = values['-OS-']
window['OUT'].update(f'You have selected:n{choice}')
window.close()
Ответ №2:
Поместите другой элемент , чтобы показать результат рядом с вашим sg.Listbox
, затем обновите этот элемент значением sg.Listbox
. Элементом может быть sg.Text
то, что вам нужно самостоятельно разделить сообщение на строки, или sg.Multiline
.
import PySimpleGUI as sg
choices = (
'Windows Enterprise 10',
'Windows Server 19',
'MacOS',
'Ubuntu',
'Debian',
)
sg.theme('DarkBlue3')
sg.set_options(font=("Courier New", 12))
layout = [
[sg.Text('Pick an OS')],
[sg.Listbox(choices, size=(22, 5), key='-OS-', enable_events=True),
sg.Text('', size=(40, 2), font=("Courier New", 12, 'bold'), key='-OUTPUT-')],
]
window = sg.Window('Pick an OS', layout)
while True: # the event loop
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == '-OS-':
text = f"You have selected: {values['-OS-'][0]}nOperating System"
window['-OUTPUT-'].update(value=text)
window.close()