Aller au contenu
← Retour aux fiches

Introduction à PySimpleGUI

Qu'est-ce que PySimpleGUI?

PySimpleGUI est une bibliothèque Python qui permet de créer des interfaces graphiques de manière simple et intuitive. Elle se base sur Tkinter, Qt, WxPython et Remi, et offre une interface unifiée pour ces différentes bibliothèques.

Installation

pip install PySimpleGUI

Création d'une fenêtre simple

import PySimpleGUI as sg

layout = [[sg.Text('Bonjour, Monde!')],
          [sg.Button('OK')]]

window = sg.Window('Fenêtre Simple', layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'OK':
        break

window.close()

Éléments de base

layout = [
    [sg.Text('Texte')],
    [sg.Input()],
    [sg.Button('Bouton')],
    [sg.Checkbox('Case à cocher')],
    [sg.Radio('Option 1', "RADIO1"), sg.Radio('Option 2', "RADIO1")],
    [sg.Slider(range=(1,100), orientation='h', size=(20,20), default_value=50)],
    [sg.Listbox(values=['Liste 1', 'Liste 2', 'Liste 3'], size=(30, 3))]
]

Gestion des événements

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    if event == 'Bouton':
        print('Bouton cliqué')
    if values[0] == 'Texte saisi':
        print('Texte:', values[0])

Personnalisation de la fenêtre

sg.theme('DarkAmber')   # Changer le thème

layout = [
    [sg.Text('Texte', font=('Helvetica', 16), text_color='blue')],
    [sg.Button('Bouton', button_color=('white', 'green'))]
]

window = sg.Window('Fenêtre Personnalisée', layout)

Boîtes de dialogue courantes

sg.popup('Ceci est une popup')
sg.popup_error('Ceci est une erreur')
sg.popup_ok_cancel('Continuer ou annuler?')
sg.popup_yes_no('Oui ou non?')

Fenêtres multi-onglets

tab1_layout = [[sg.Text('Onglet 1')],
               [sg.Input(key='-IN-')],
               [sg.Text('', size=(12,1), key='-OUT-')]]

tab2_layout = [[sg.Text('Onglet 2')],
               [sg.Input(key='-IN2-')],
               [sg.Text('', size=(12,1), key='-OUT2-')]]

layout = [[sg.TabGroup([[sg.Tab('Tab 1', tab1_layout), sg.Tab('Tab 2', tab2_layout)]], key='-TABGROUP-')],
          [sg.Button('Lire'), sg.Button('Quitter')]]

window = sg.Window('Fenêtres multi-onglets', layout)

À explorer

Des ressources pour essayer une nouvelle idée.