~~SLIDESHOW~~ ====== 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 ===== * **Python** (dernière en date): http://www.yomgui.fr/python/ * **PyMUI** //(Python 2.5 et plus néccessaire)//\\ http://www.yomgui.fr/python/thirdparties/