Найти - Пользователи
Полная версия: PyQt4 - построение ui
Начало » GUI » PyQt4 - построение ui
1
j2a
Доброго дня.

Как известно, у PyQt4 существует несколько вариантов построение интерфейса:
1) руками
2) рисовать designer'ом
2а) .ui –pyuic–> .py, наследование
2б) .ui –pyuic–> .py, атрибут
2в) .ui динамическая загрузка

Меня интересует положительный или отрицательный опыт с одним из вариантов. Что, почему, как :)

P.S. Если варианты не прозрачны, приведу примеры
poltergeist
1) руками делаю всё, всем доволен, тем более, что почти всегда приходится сабклассить Qt-шные классы, оверрайдить методы предка, имплементить виртуальные методы, события, добавлять свои и т.д. Серьёзного приложения без этого не создать по любому, иначе не получить всех плюсов от ООП. В этом случае разработчик понимает что твориться, как всё происходит, может быстро найти причину проблемы.

2) ( а - б - в : там отличия не так существенны) в дизайнере нет “контроля ошибок”, думаю это только с первого раза кажется, что всё так же просто как в Делфи или Билдере. Сам начинал в Делфи, и скажу что там всё намного проще (не помню случая, чтобы приходилось заглядывать в файл формы .dfm), а тут всё равно надо знать как что работает.
Из плюсов:
- при желании что-то подвигать, изменить в интерфейсе, можно реально облегчить себе труд.
- есть у меня ещё предположение, что формы описанные в дизайнере (2в), создаются быстрее чем в питоне (руками), т.к. там работает сишный xml парсер интерфейса, а питон отдыхает - но это критично для перегруженых контролами форм.
- ещё в дизайнере можно экспериментировать с интерфейсом, и сразу наблюдать результат, а если писать всё руками - будет очень утомительно, проверил на собственном опыте, но всё равно буду и дальше делать руками:)
Из минусов:
- люди в итоге не понимают что происходит, не понимают что же надо поменять, чтоб заработало.

Подсуммирую: я бы использовал дизайнер, но не для полноценного приложения, а для простых надстроек (над скриптом, приложением с командной строкой), или для диалогов, да в общем везде, где пойдёт стандартный статический интерфейс. А всё серьёзное делается руками:)
j2a
poltergeist, спасибо за ответ. Твоя позиция ясна ;)

Понятно что у каждого варианта есть плюсы и минусы, иначе был бы бесспорный фаворит, а такого нет. У 1-го варианта плюсы в более красивом коде, но минусы, что а) требуется достаточно высокая квалификация программиста для получения красивого, легко читаемого и поддерживаемого кода. б) даже для мелкой правки интерфейса приходится править код.

У меня был опыт с wxpython и 1-м вариантом. Попробую pyqt4 на пробном проекте, но мне вариант 2б больше нравится.

А что за “контроль ошибок” в дизайнере? (опытом с delphi не обременен)
poltergeist
>> А что за “контроль ошибок” в дизайнере? (опытом с delphi не обременен)
Это чисто субъективное моё высказывание, не знаю даже как переформулировать, думаю если руки прямые, всё будет ОК, ну если что - исправим:)

с минусом а) полностью согласен, людей мало; с минусом б) - это не всегда минус.

Будут косяки на пробном проекте или наоборот получится “success story” - отпишись, другие тоже может стоят перед выбором.
j2a
poltergeist
Будут косяки на пробном проекте или наоборот получится “success story” - отпишись, другие тоже может стоят перед выбором.
Забыл отписаться. Исправляюсь: http://www.pyobject.ru/blog/post/pyqt-unpythonic-gui параграф “Как делать GUI”
j2a
продолжение - http://pyobject.ru/blog/2008/10/04/pyqt4-designer-plugins/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB