Скрытие и отображение текста, ввода и FileBrowse () в PySimpleGUI - PullRequest
0 голосов
/ 03 апреля 2020

Я сделал GUI, используя PYSimple GUI, который выглядит примерно так:

Click here to view GUI

Код для того же, как показано ниже:

import PySimpleGUI as sg 

sg.theme('Light Blue 2')

layout = [[sg.Text('Choose files to get started', size=(30, 1), justification='center', font=("Helvetica", 25), relief=sg.RELIEF_RIDGE)],
          [sg.Text('Select Logs you wish to validate', size=(30, 1), justification='left', font=("Helvetica", 15), relief=sg.RELIEF_RIDGE)],
          [sg.Text('_'  * 100, size=(65, 1))], 
          [sg.Checkbox('SVAS Log', size=(10,1), key='chk_svas'),  sg.Checkbox('HSS Log', size=(10,1), key = 'chk_hss'), sg.Checkbox('AOTA Log', size=(10,1), key = 'chk_aota'), sg.Checkbox('Nexus Log', size=(10,1), key = 'chk_nexus')],
          [sg.Button('Get Inputs')],
          [sg.Text('_'  * 100, size=(65, 1))], 
          [sg.Text('Request File', size=(15,1)), sg.Input(key='req'), sg.FileBrowse()],
          [sg.Text('SVAS Log File', size=(15,1), key= 'txt_svas'), sg.Input(key='svas'), sg.FileBrowse(target= 'svas')],
          [sg.Text('HSS Log File', size=(15,1)), sg.Input(key='hss'), sg.FileBrowse()],
          [sg.Text('AOTA Log File', size=(15,1)), sg.Input(key='aota'), sg.FileBrowse()],
          [sg.Text('Nexus Log File', size=(15,1)), sg.Input(key='nexus'), sg.FileBrowse()],
          [sg.Submit('Generate Logs'), sg.Cancel('Quit'), sg.Button('Reset')],
          [sg.Text('Generating Validation Logs...', size=(30,1), visible = False, key = 'progbar_head')],
          [sg.ProgressBar(1000, orientation='h', size=(20, 20), key='progbar', visible = False)]]


window = sg.Window('Provident Logs Validator', layout, size=(600, 400))

while True:
    event, values = window.read()
    if event == 'Quit':
        break
    print(event, values)

Изначально нижняя часть должна быть полностью скрыта

      [sg.Text('SVAS Log File', size=(15,1), key= 'txt_svas'), sg.Input(key='svas'), sg.FileBrowse(target= 'svas')],
      [sg.Text('HSS Log File', size=(15,1)), sg.Input(key='hss'), sg.FileBrowse()],
      [sg.Text('AOTA Log File', size=(15,1)), sg.Input(key='aota'), sg.FileBrowse()],
      [sg.Text('Nexus Log File', size=(15,1)), sg.Input(key='nexus'), sg.FileBrowse()]

и должна переключаться на видимое / невидимое значение в зависимости от флажков, которые я выбрал / отменил. Например, если я выбираю только флажки для SVAS и HSS, то должны быть видны только следующие:

[sg.Text('SVAS Log File', size=(15,1), key= 'txt_svas'), sg.Input(key='svas'), sg.FileBrowse(target= 'svas')],
          [sg.Text('HSS Log File', size=(15,1)), sg.Input(key='hss'), sg.FileBrowse()],

, и если я их сниму, они должны go снова стать невидимыми

Как это может быть достигнуто? Я новичок в Python и PySimple GUI.

1 Ответ

0 голосов
/ 03 апреля 2020

Это не совсем то, что вы хотите, но есть простой способ управлять им.

[sg.Text('SVAS Log File', size=(15,1), key='txt_svas'), sg.Input(key='svas',visible=False, enable_events=True), sg.FileBrowse(key='svas')]

Это означает, что если вы нажимаете кнопку, когда вам это нужно, ввод область будет открыта. Однако, это действительно влияет на макет, поэтому вы можете не быть довольны им. Но это так просто.

...