Interfaces Graphiques Boucle Évènementielle Éléments Graphiques

  • Published on
    05-Jan-2017

  • View
    222

  • Download
    8

Embed Size (px)

Transcript

  • 1Laurent POINTAL - LIMSI COURS PYTHON

    Interfaces Graphiques

    Programme Squentiel Programme vnementiel

    Initialisations

    Traitements

    Finalisation

    Initialisations

    Boucle vnementielle

    Finalisation

    2Laurent POINTAL - LIMSI COURS PYTHON

    Boucle vnementielle

    Le programme demande au systme de lui fournir l'vnement suivant traiter:

    vnements utilisateur: souris, clavier

    vnements systme: montage systme de fichiers, mise en veille, timer

    vnements graphiques: redimensionnement fentre, passage en premier plan, rafrachissement ncessaire, changement palette de couleurs

    3Laurent POINTAL - LIMSI COURS PYTHON

    lments Graphiques(Frames, Widgets, Controles...)

    Fentres, fentres documents (SDI et MDI).

    Dialogues (modaux et non modaux), palettes d'outils.

    Barre de menus, menus surgissant.

    Boutons d'action, cases cocher, boutons radio.

    tiquettes, champs d'dition, champs avec menu de slection.

    Barres de dfilement.

    Listes slection.

    Arborescences.

    Dcorations (icnes, dessins, lignes)

    4Laurent POINTAL - LIMSI COURS PYTHON

    Hirarchie d'lments graphiques

    Deux mthodes pour le positionnement:

    Coordonnes absolues codes en dur.

    Coordonnes calcules dynamiquement...positionneurs automatiques (layout, sizer).

    edit - chaines.py

    l34 - c22 - insertion

    #!/bin/env python# -*- coding: ascii -*-"""extraction des chaines

    ..."""import os,sys...

    Fichier Edition Outils Aide Recherche

    Texte:

    RechercherAnnuler

    Vers le bas Vers le haut

  • 5Laurent POINTAL - LIMSI COURS PYTHON

    Dfinition d'une interface

    Dfinition des lments graphiques.

    De leur organisation physique (prise en compte de leurs relations logiques pour leurs positions).

    De leurs attributs graphiques.

    Des actions associes leur manipulation.

    6Laurent POINTAL - LIMSI COURS PYTHON

    Librairies GraphiquesCration d'interfaces utilisateur

    pyQT

    pyGTK

    wxPython (wxWidgets)

    win32gui (win32all)

    ...

    Graphisme (courbes & Co)

    VTK (The Visualization Toolkit)

    PIDLE (Plugin Drawing, Does Little Else)

    motplotlib (Matlab-like)

    pyQwt

    wxPyPlot

    FloatCanvas

    SciPy

    KMatplot

    ...

    7Laurent POINTAL - LIMSI COURS PYTHON

    Tkinter Install en standard avec Python.

    Mapping de la librairie Tk de Tcl dans Python.

    Multi-plateforme.

    Nombre de widgets standards relativement limit.

    Packages d'extension (Tix, Pmw).

    Assez simple:

    Gre la boucle vnementielle.

    Dispatch les vnements vers des 'callback'.Docs en ligne assez pauvre, voir les liens indiqus dans la doc (ex. "Thinking in Tkinter", "An introduction to Tkinter", "Tkinter reference: a GUI for Python")

    8Laurent POINTAL - LIMSI COURS PYTHON

    Widgets Tkinter Label - tiquette.

    Entry - champs d'dition.

    Button - bouton de commande.

    Radiobutton - bouton choix 1 parmi n.

    Checkbutton - bouton option (oui/non).

    Menu - menu droulant.

    Text - text complexe (style, taille, images...).

    Listbox - liste slection.

    Frame - conteneur d'autres widgets.

    Canvas - zone de trac graphique.

  • 9Laurent POINTAL - LIMSI COURS PYTHON

    Widgets Tkinter (2)

    Toplevel - fentre.

    Scrollbar - barre de dfilement.

    Menubutton bouton pour menu popup.

    Scale - curseur de slection, thermomtre.

    Message - texte long non ditable ajust.

    10Laurent POINTAL - LIMSI COURS PYTHON

    Layouts Tkinter

    Packer - remplissage au fur et mesure suivant directives.

    Grid - rpartition dans une grille virtuelle , les widgets occupant les cellules demandes.

    Placer - positionnement prcis ' la main', sans influer sur le conteneur.

    11Laurent POINTAL - LIMSI COURS PYTHON

    Pour Dmarrer

    from Tkinter import *root = Tk()root.title("Ma fentre")...widget = ClasseDuWidget(parent,att=valeur,)widget.pack(options)...root.mainloop()

    12Laurent POINTAL - LIMSI COURS PYTHON

    Attributs Gnraux Widgets bg (background) - couleur de fond.

    fg (foreground) - couleur d'avant plan.

    font - famille, taille, style.

    cursor - forme de curseur.

    relief - type d'encadrement.

    bd (borderwidth) - largeur de l'encadrement.

    takefocus - indicateur widget navigable au clavier.

  • 13Laurent POINTAL - LIMSI COURS PYTHON

    Attributs Courants Widgets

    text - contenu textuel du widget.

    textvariable - variable Tkinter associe au contenu.

    state - tat du widget.

    command - fonction appeler.

    height width - dimensions dsires.

    justify - alignement multilignes.

    anchor - position du contenu dans le widget.

    underline - index caractre souligner (raccourci).

    padx pady - espace supplmentaire autour du widget.

    bitmap image - image afficher dans le widget.

    xscrollcommand yscrollcommand - fonction pour scroll.

    14Laurent POINTAL - LIMSI COURS PYTHON

    Mthodes Gnrales WidgetsNombreuses (ie. cf doc)

    after - code appeler priodiquement.

    bind unbind - gestion associations vnements - code (handlers).

    clipboard - gestion du presse-papiers (couper / copier / coller).

    configure - modification d'options (comme la cration du widget).

    destroy -

    event - manipulation des files d'vnements.

    focus - gestion du focus (lment 'd'intrt').

    15Laurent POINTAL - LIMSI COURS PYTHON

    Mthodes Gnrales Widgets (2)

    getvar setvar - support variables Tkinter.

    grab - gestion des poignes de manipulation d'objets graphiques.

    image - gestion des images lues.

    mainloop quit - boucle vnementielle.

    option - gestion des options par dfaut.

    selection - gestion des slections (texte principalement).

    update - mises jours graphique.

    wait - attente de traitement de certains vnements.

    winfo_ - mthodes bas niveau.

    16Laurent POINTAL - LIMSI COURS PYTHON

    Mthodes Gestionnaire de Fentres

    (les essentielles)

    deiconify - retour fentre l'tat prcdent l'iconisation.

    resizable - autorisation de redimensionnement par l'utilisateur.

    title -

  • 17Laurent POINTAL - LIMSI COURS PYTHON

    Variables Tkinter

    Pour changer des donnes de faon automatique entre les widgets et des objets Python.

    Classes: StringVar, IntVar, BooleanVar, DoubleVar

    Mthodes: set, get, trace_variable, trace_vdelete,

    18Laurent POINTAL - LIMSI COURS PYTHON

    Un exemple... et des commentaires

    (le pseudo-diteur de texte avec le dialogue de recherche)

Recommended

View more >