PySimpleGUI – prostsze tworzenie GUI w Pythonie

PySimpleGUI jest wrapperem ułatwiającym i przyspieszającym tworzenie aplikacji okienkowych w Pythonie. Dostępne są 4 porty, bazujące na następujących bibliotekach: tkinter, Qt, WxPython, Remi (interfejs webowy!).

Zmiana portu np. z PySimpleGUI (bazującego na tkinterze) na PySimpleGUIQt (korzystającego z Qt) nie wymaga dalszych zmian w kodzie programu! Więcej szczegółów można przeczytać >>tutaj<<

Przykładowy program pobierający dane od użytkownika i wyświetlający pobrane dane w drugim oknie:

import PySimpleGUIQt as sg

layout = [[sg.Text('Wprowadź przykładowy tekst')],
          [sg.InputText()],
          [sg.Submit('Zastosuj'), sg.Cancel('Anuluj')]]

window = sg.Window('Okno pobierające dane', layout)

event, values = window.Read()

window.Close()

if event == 'Zastosuj':
    text_input = values[0]
    sg.Popup('Wprowadzony text:', text_input, title='Okno wyświetlające 
        dane')

Pierwsza linia skryptu importuje moduł wrappera (musi być zainstalowany w systemie np. przez pip, jak również framework, który jest wykorzystywany przez dany port – w tym przypadku Qt).

Kolejna linia definiuje wygląd szablonu (layout), który jest listą list. Każda kolejna lista definiuje kolejny wiersz szablonu – w pierwszym wierszu element Text – który tworzy etykietę o treści Wprowadź przykładowy tekst, w drugim pole wprowadzania InputText, a w trzecim wierszu przyciski Zastosuj i Anuluj.

Następnie tworzymy okno i przypisujemy jako drugi argument wcześniej utworzony layout.

Naciśnięcie jakiegokolwiek przycisku lub zamknięcie okna spowoduje przejście do odczytu stanu okna – zwracana jest krotka składającą się z: elementu event (np. nazwy przycisku lub None gdy naciśnięto przycisk zamykania okna) oraz słownika zawierającego klucze opisujące pola wprowadzania okna oraz wartości wprowadzone w te pola. Gdy nie podano argumentu key dla pola wprowadzania podczas tworzenia layoutu, to domyślnie kluczami słownika są kolejne wartości całkowitoliczbowe. W powyższym przykładzie wpisany tekst, który jest zapisany w słowniku values jako wartość klucza 0, jest przekazywany jako element napisu wyświetlanego w okienku popup (Okno wyświetlające dane).