Нужна помощь / руководство по созданию настольного приложения с графическим интерфейсом - PullRequest
1 голос

Я планирую создать приложение для настольного компьютера с использованием Python, чтобы изучить некоторые концепции рабочего стола. Я собираюсь использовать GTK или Qt, я еще не решил, какой именно.

Факт: я хотел бы создать приложение с возможностью вызова из командной строки И с использованием графического интерфейса. Так что это было бы полезно для поклонников cmd, а также для пользователей графического интерфейса.

Было бы интересно создать веб-интерфейс и в будущем, чтобы он мог быть запущен на сервере где-нибудь с использованием html-интерфейса, созданного на языке шаблонов.

Я думаю о двух подходах: - Создание «модели» (базовый модуль, в котором находятся все функции) с простым интерфейсом, который вызывается из настольной / веб-реализации; - Создание «модели» с html-интерфейсом и вставка компонента браузера, чтобы я мог повторно использовать весь код в сценариях рабочего стола и в Интернете.

Мой вопрос: какие именно концепции задействованы в этом проекте? Какие преимущества / недостатки у каждого подхода? Они возможны?

Называя «interface», я планирую сделать некоторые файлы interfaces.py с вызовами def. Это плохой подход?

Я хотел бы знать некоторые рекомендации по книгам или ресурсы для обоих вариантов - или исходный код из проектов, которые разделяют те же цели GUI / cmd / web, которые я преследую.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 22 мая 2010

А как насчет ссылки на источник?

Наличие команды CLI и интерфейса GUI действительно распространено на Unix-платформах ... Bit Torrent-клиент TransmissionBT - хороший пример того, что вы планируете делать.

1 голос
/ 20 мая 2010

Отделение уровня представления от логики приложения делает возможным!.

Вы можете разделить ваше приложение на слои, слой - это многократно используемая часть кода, которая выполняет определенную функцию.

Например, вы можете разделить приложение на два или более уровня: один с представлением приложения, а другой с моделью. Это позволяет повторно использовать всю модель приложения с различными реализациями уровня представления.

Уровень представления содержит компоненты, которые реализуют и отображают пользовательский интерфейс и управляют взаимодействием с пользователем. Этот слой включает элементы управления для ввода и отображения пользователя, в дополнение к компонентам, которые организуют взаимодействие с пользователем. Может иметь несколько реализаций технологий уровня представления, таких как PyQt4, PyGtk, Html, console и т. Д.

Почему полезно разделение моделей?

Вас может удивить, почему так важно перемещать как можно больше логики за пределы уровня представления и на уровень модели. Самая большая причина - это повторное использование: размещенная в модели логика увеличивает возможность повторного использования приложения. По мере роста приложений приложения часто превращаются в другие сферы. Приложения могут запускаться как веб-приложение, но некоторые функции могут быть позже перенесены в приложение интеллектуального клиента. Части приложения могут быть разделены между веб-сайтом и веб-службой или службой Windows, работающей на сервере. Кроме того, поддержание логики помогает в разработке хорошего дизайна (иногда код может запутаться в пользовательском интерфейсе).

Однако есть некоторые предостережения: разработка приложений занимает немного больше времени, когда большая часть логики находится на бизнес-уровне. Причина в том, что это часто включает создание нескольких наборов объектов (уровень данных и код доступа, а также бизнес-объекты), а не встраивание их в приложение. Дополнительное время, которое требуется для этого, может быть отвратительным для некоторых менеджеров и руководителей проектов, особенно потому, что для этого часто требуется, чтобы вы были хорошо осведомлены об объектно-ориентированном программировании, а это больше, чем большинству людей нравится.

Вы можете искать N-Layered архитектурный стиль в Интернете.

Это пример приложения, которое реализует несколько типов пользовательских интерфейсов, но на основе. NET Framework, для Python аналогично.

http://microsoftnlayerapp.codeplex.com/

Я работаю над большим проектом на основе платформы представления PyQt4. один из применяемых стилей архитектуры - N-Layers. Если вам нужен простой пример, основанный на PyQt4, пришлите мне электронное письмо.

...