Я работаю над приложением python, которое работает на двух разных платформах, а именно в обычном настольном Linux и Maemo 4. Мы используем PyGTK на обеих платформах, но на Maemo есть куча небольших настроек, чтобы они выглядели красиво, которые реализованы как следующим образом:Как мне работать с несколькими общими пользовательскими интерфейсами?
if util.platform.MAEMO:
# do something fancy for maemo
else:
# regular pygtk
Есть примерно 15 из них, если заявления нужно, чтобы получить интерфейс смотреть и работать хорошо на Maemo 4.
Это было очень управляемо за все это время. Проблема в том, что некоторое время назад появилась новая версия Maemo (5, aka fremantle), и она имеет некоторые большие различия по сравнению с Maemo 4. Я не хочу добавлять кучу проверок по всему графическому интерфейсу, чтобы получить все 3 платформы, хорошо работающие с одной и той же базой кода, потому что это будет беспорядочно. Я также не хочу создавать копию исходного кода GUI для каждой платформы и просто изменять его для конкретной платформы (я бы хотел использовать как можно больше кода).
Итак, какие способы иметь немного различные пользовательские интерфейсы для разных платформ, основанных на одном и том же ключевом коде ядра? Я не думаю, что это вопрос с python или Maemo, я просто хотел бы знать, как это делается.
Какой код отличается между платформами: обратные вызовы, используемые виджеты, путь виджеты расположены (т.е. в разных контейнеры или разные заказы), или только определенные свойства конкретной платформы для виджетов? – LeafStorm
Извините, я забыл об этом. Это все вышесказанное.В основе всех платформ лежит PyGTK, затем на Maemo 4 есть некоторые вещи из хилдона (специфичные для Maemo виджеты, которые имеют разные имена/сигналы/и т. Д.), А затем на Maemo 5 есть еще более причудливые хильдоны и другие другие виджеты, которые делают приложение более удобно. Кроме того, в версии Maemo 5 мы хотим иметь поддержку вращения, которая требует переустановки виджетов на лету. – nikosapi