Voir cette page sous forme de diaporama.

PyMUI

Ecrire efficacement des interfaces utilisateurs avec Python et MUI.

Par Guillaume ROGUEZ - Alchimie 2009

PyMUI - Introduction

  • Python et MorphOS
  • MUI
  • Python + MUI = PyMUI

PyMUI - Pourquoi ?

  • Ecrire une interface avec MUI en C:
  • Limite du C
    • Langage bas niveau vs haut niveau
    • Compilé vs Interprété
    • Gestion de l'erreur
  • Limite de MUI (surtout BOOPSI):
    • Code Orienté-Objet
    • Multiple-héritage
  • Python - All inclusives

PyMUI - Histoire

  • r1 | roguez | 2008-01-09 00:46:18 +0100 (Wed, 09 Jan 2008) | 1 line
  • 2009 - L'idée de génie et 3 mois plus tard: Gribouillis!

PyMUI - Conception

PyMUI - Utilisation - Développement

  • Exemple de déclaration d'une classe:
class Cycle(Group):
    CLASSID = MUIC_Cycle
    ATTRIBUTES = {
        MUIA_Cycle_Active:  ('Active', 'i', 'isg'),
        MUIA_Cycle_Entries: ('Entries', '0s', 'i..',
                             lambda x: ArrayOfString(x),
                             None),
        }
    def __init__(self, Entries, **kwds):
        super(Cycle, self).__init__(Entries=Entries, **kwds)

PyMUI - Utilisation - Utilisateur

PyMUI - Limitations (1)

⇒ Manque de temps cruel!

  • Toutes les classes ne sont pas encore disponibles.
  • Appel au méthodes trop bas niveau, aucune vérifications de paramétres, références des objets Python non gardée.
  • Création d'une MCC limitée au méthodes suivantes: AskMinMax, Setup, Cleanup, Show, Hide, Draw, HandleEvents (limité) seulement.
  • Pas de création d'objet MUI pré-construits (MUIO_xxx).

PyMUI - Limitations (2)

  • Gestion basique des exceptions python pendant la boucle principale.
  • Seulement certains types C sont gérés: entiers, booléens, objets MUI, chaînes de caractères, tableaux (des types de bases)…
    ⇒ Sinon c'est un pointeur opaque.
  • Et tout ce que j'ai oublié :-)

PyMUI - Gribouillis (exemple)

  • Premier logiciel MUI/Python utilisant les tablettes graphiques.
  • Un vrai test du feu pour PyMUI:
    • Une GUI complexe avec MCC ;
    • Multithreads.
  • Pas de limites au dessin.
  • Gestion multi-espaces de couleurs: RGB, CMYK.

PyMUI - Les liens


dev/pymui/s5_a29k.txt · Dernière modification: 2009/10/05 11:23 par Yomgui