Как распечатать выбранный элемент таблицы в том же окне?

#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()