Ich arbeite an einer Python-Anwendung, die auf 2 verschiedenen Plattformen läuft, nämlich regulärem Desktop-Linux und Maemo 4. Wir verwenden PyGTK auf beiden Plattformen, aber auf Maemo gibt es eine Reihe kleiner Optimierungen, damit es gut aussieht, die als implementiert sind folgt:Wie gehe ich mit mehreren gemeinsamen Benutzeroberflächen um?
if util.platform.MAEMO:
# do something fancy for maemo
else:
# regular pygtk
Es rund 15 davon sind, wenn Aussagen der UI suchen und arbeiten schön auf Maemo 4.
sehr Dies war für die ganze Zeit überschaubar bekommen benötigt. Das Problem ist, dass vor einiger Zeit eine neue Version von Maemo veröffentlicht wurde (5, aka fremantle) und es einige große Unterschiede im Vergleich zu Maemo 4 gibt. Ich möchte im GUI-Code nicht eine Reihe von Überprüfungen hinzufügen, um alle 3 Plattformen funktionieren gut mit der gleichen Codebasis, weil das unordentlich werden würde. Ich möchte auch keine Kopie des ursprünglichen GUI-Codes für jede Plattform erstellen und sie einfach für die spezifische Plattform ändern (ich möchte so viel Code wie möglich wiederverwenden).
Also, was sind Möglichkeiten leicht verschiedene UIs für verschiedene Plattformen zu haben, die auf dem gleichen Kern UI-Code basieren? Ich glaube nicht, dass dies eine Python oder Maemo-spezifische Frage ist, ich würde einfach gerne wissen, wie das gemacht wird.
Was zwischen den Plattformen unterscheidet: die Rückrufe verwendeten Widgets, die Art und Weise der Widgets angeordnet sind (dh in verschiedenen Container oder andere Bestellungen) oder nur bestimmte plattformspezifische Eigenschaften auf den Widgets? – LeafStorm
Sorry, ich habe das vergessen. Es ist alles oben genannte.Im Kern auf allen Plattformen ist es PyGTK, dann auf Maemo 4 gibt es einige Hildon-Sachen (Maemo-spezifische Widgets, die verschiedene Namen/Signale/etc haben) und dann auf Maemo 5 gibt es noch mehr ausgefallene Hildon-Sachen und andere andere Widgets, die das machen App mehr verwendbar. Auch bei der Maemo 5-Version möchten wir eine Rotationsunterstützung haben, bei der Widgets im laufenden Betrieb neu angeordnet werden müssen. – nikosapi