Table des matières
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/<todo>
- PyMUI (Python 2.5 et plus néccessaire)
http://www.yomgui.fr/python/thirdparties/<todo>