Je travaille sur une application python qui fonctionne sur 2 plateformes différentes, à savoir le bureau standard linux et Maemo 4. Nous utilisons PyGTK sur les deux plates-formes mais sur Maemo il y a un tas de petites modifications qui sont implémentées comme suit:Comment gérer plusieurs interfaces utilisateur communes?
if util.platform.MAEMO:
# do something fancy for maemo
else:
# regular pygtk
Il y a à peu près 15 de ces déclarations, si nécessaire pour obtenir l'interface utilisateur recherche et de travail agréable sur Maemo 4.
cela a été très facile à gérer pour tout ce temps. Le problème est qu'il y a quelques temps une nouvelle version de Maemo a été publiée (5, alias fremantle) et il y a de grandes différences par rapport à Maemo 4. Je ne veux pas ajouter un tas de contrôles dans le code de l'interface graphique pour faire en sorte que les trois plates-formes fonctionnent bien avec la même base de code, car cela serait désordonné. Je ne veux pas non plus créer une copie du code GUI d'origine pour chaque plate-forme et le modifier simplement pour la plate-forme spécifique (je voudrais réutiliser autant de code que possible).
Alors, quelles sont les façons d'avoir légèrement différentes interfaces utilisateur pour différentes plates-formes qui sont basées sur le même code de base de l'interface utilisateur? Je ne pense pas que ce soit un python ou une question spécifique à Maemo, j'aimerais juste savoir comment cela est fait.
Quel genre de code est différent entre les plates-formes: les callbacks, les widgets utilisés, la façon dont les widgets sont disposés (dans différents conteneurs ou différentes commandes), ou seulement certaines propriétés spécifiques à la plate-forme sur les widgets? – LeafStorm
Désolé, j'ai oublié ça. C'est tout ce qui précède.Au cœur de toutes les plateformes c'est PyGTK, puis sur Maemo 4 il y a des trucs hildon (des widgets spécifiques à Maemo qui ont différents noms/signaux/etc) puis sur Maemo 5 il y a encore plus de trucs hildon et d'autres widgets qui font le application plus utilisable. En outre, sur la version Maemo 5, nous voulons avoir un support de rotation qui nécessite de réorganiser les widgets à la volée. – nikosapi