Форум сайта python.su
Доброго дня.
Как известно, у PyQt4 существует несколько вариантов построение интерфейса:
1) руками
2) рисовать designer'ом
2а) .ui –pyuic–> .py, наследование
2б) .ui –pyuic–> .py, атрибут
2в) .ui динамическая загрузка
Меня интересует положительный или отрицательный опыт с одним из вариантов. Что, почему, как :)
P.S. Если варианты не прозрачны, приведу примеры
Офлайн
1) руками делаю всё, всем доволен, тем более, что почти всегда приходится сабклассить Qt-шные классы, оверрайдить методы предка, имплементить виртуальные методы, события, добавлять свои и т.д. Серьёзного приложения без этого не создать по любому, иначе не получить всех плюсов от ООП. В этом случае разработчик понимает что твориться, как всё происходит, может быстро найти причину проблемы.
2) ( а - б - в : там отличия не так существенны) в дизайнере нет “контроля ошибок”, думаю это только с первого раза кажется, что всё так же просто как в Делфи или Билдере. Сам начинал в Делфи, и скажу что там всё намного проще (не помню случая, чтобы приходилось заглядывать в файл формы .dfm), а тут всё равно надо знать как что работает.
Из плюсов:
- при желании что-то подвигать, изменить в интерфейсе, можно реально облегчить себе труд.
- есть у меня ещё предположение, что формы описанные в дизайнере (2в), создаются быстрее чем в питоне (руками), т.к. там работает сишный xml парсер интерфейса, а питон отдыхает - но это критично для перегруженых контролами форм.
- ещё в дизайнере можно экспериментировать с интерфейсом, и сразу наблюдать результат, а если писать всё руками - будет очень утомительно, проверил на собственном опыте, но всё равно буду и дальше делать руками:)
Из минусов:
- люди в итоге не понимают что происходит, не понимают что же надо поменять, чтоб заработало.
Подсуммирую: я бы использовал дизайнер, но не для полноценного приложения, а для простых надстроек (над скриптом, приложением с командной строкой), или для диалогов, да в общем везде, где пойдёт стандартный статический интерфейс. А всё серьёзное делается руками:)
Отредактировано (Янв. 31, 2008 22:35:39)
Офлайн
poltergeist, спасибо за ответ. Твоя позиция ясна ;)
Понятно что у каждого варианта есть плюсы и минусы, иначе был бы бесспорный фаворит, а такого нет. У 1-го варианта плюсы в более красивом коде, но минусы, что а) требуется достаточно высокая квалификация программиста для получения красивого, легко читаемого и поддерживаемого кода. б) даже для мелкой правки интерфейса приходится править код.
У меня был опыт с wxpython и 1-м вариантом. Попробую pyqt4 на пробном проекте, но мне вариант 2б больше нравится.
А что за “контроль ошибок” в дизайнере? (опытом с delphi не обременен)
Офлайн
>> А что за “контроль ошибок” в дизайнере? (опытом с delphi не обременен)
Это чисто субъективное моё высказывание, не знаю даже как переформулировать, думаю если руки прямые, всё будет ОК, ну если что - исправим:)
с минусом а) полностью согласен, людей мало; с минусом б) - это не всегда минус.
Будут косяки на пробном проекте или наоборот получится “success story” - отпишись, другие тоже может стоят перед выбором.
Офлайн
poltergeistЗабыл отписаться. Исправляюсь: http://www.pyobject.ru/blog/post/pyqt-unpythonic-gui параграф “Как делать GUI”
Будут косяки на пробном проекте или наоборот получится “success story” - отпишись, другие тоже может стоят перед выбором.
Офлайн
Офлайн