Вопрос

Какой у вас опыт использования веб-технологий (HTML, XML, CSS, JavaScript) для реализации части функциональности приложения GUI? Плюсы и минусы, пожалуйста.

Нет серверов, реляционных баз данных, AJAX или Cookies для управления сеансом, ни существующий веб-пансион, а скорее приложение GUI, которое использует веб-виджеты (например, Qt webkit.) Чтобы рендерировать и обрабатывать значительные части пользовательского интерфейса, воспользовавшись преимуществами рамки GUI для достижения даже более богатого взаимодействия и лучшего интеграции на рабочем столе.

Я уже провел, что подход возможен с помощью PYQT. Содержание может быть отображено из файловой системы или от строк, а запросы URL (изображения или клики) могут быть захвачены и служены обработчиками событий формы. CSS и JavaScript поддерживаются, возможно, с некоторыми ограничениями.

        # ...
        self.webView.page().setLinkDelegationPolicy(
            QtWebKit.QWebPage.DelegateExternalLinks
            )
        #... 

class TotiMainWindow(QtGui.QMainWindow):
    def linkClicked(self, url):
        pass # events arrive here

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

Примечание: я разместил другую версию этого вопроса на PMS, но нашел очень мало опыта с таким подходом там.

Закрытие примечания

Я только что нашел большую часть информации, которую я искал в серии Сообщения в блоге André Pareis.

Это было полезно?

Решение

Мы сделали именно это для проекта, когда Windows XP была новой.

Это дало моей команде несколько преимуществ:

  • Хорошо выглядящий интерфейс с относительно небольшими усилиями
  • Легко изменить стиль пользовательского интерфейса последовательным образом с помощью CSS
  • Относительно простая интеграция с C ++ (вызывающие функции из пользовательского интерфейса и наоборот)

Недостатки, которые мы видели, были:

  • Некоторые не так хорошие брандмауэры считаются доступ к внутренним ресурсам (то есть другие HTML-страницы в интерфейсе UI), чтобы стать веб-запросом
  • Добавление и доступ к необходимым ресурсам в некоторых случаях может быть немного громоздким
  • Было возможным установить свойства в Internet Explorer, который предотвратит работу JS в приложении

Обратите внимание, что некоторые программы Windows XP: S используют этот подход.

Это, вероятно, лучше всего работает с небольшими, более волшебными частями пользовательского интерфейса (который наш интерфейс был почти полностью).

С тех пор я не совсем не участвовал в проектах интернет-пользовательских интерфейсов, поэтому я не могу сказать вам, что этот подход все еще действителен ... Я знаю, что приложения на основе MFC позволят вам использовать диалоговые окна на основе HTML.

Другие советы

Я думаю, что самое большое преимущество для использования веб-разметки, такого как HTML / CSS и другие веб-технологии, заключается в том, что настольные приложения могут очень хорошо иметь свои дни.

Как мы говорим, инженеры Google работают над Chromium OS, что по существу состоит из одного приложения GUI ... браузера ...

Теперь, в то время как ничто не может ничем не приехать на самом деле, ясно, что растущий тенденция в количестве приложений, доступных через веб-браузер, доступный в любом месте. Мне кажется, что это будущее развития приложений.

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

Обновлять: Несколько лет назад мы разработали рабочий стол агента для нашего колл-центра, который по сути, по сути, является локальным приложением, которое открывает розетки для интеграции с помощью телефонной системы. Пользовательский интерфейс Агенты используют использование с HTML, CSS и JavaScript, и опыт ошеломляет. Когда мы выпустили наше последнее обновление в 2010 году с профессиональными CSS Redesign, наши агенты были очень впечатлены не только насколько легко взаимодействовать, но и насколько легко использовать.

В будущем мы будем портировать это 100% к браузеру, но на данный момент он должен быть локальным приложением из-за интеграции COM с помощью телефонной системы.

В аналогичной ситуации в 2005 году я создал автономный WebApp, используя XForms, CSS, JavaScript, XML и XML-схему для не в сети Извлечение данных и проверка. С хорошими XForms -> HTML + JS Transformer (Chiba) это сделала задание без исправлений ошибок после первоначального выпуска. Он использовался в течение 6-12 месяцев (IIRC) примерно на дюжине инженеров для проекта, собирающих тестовые данные в туннеле большого адронного коллайдера. Самым большим удивлением этого проекта было на том, насколько вы получаете бесплатно, когда выходите на веб-платформу, даже для автономного использования. Настоятельно рекомендуется.

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

Существует довольно много приложений, построенных на вершине платформы Mozilla. Это не на 100% веб-технологии, так как вместо HTML вы используете XML на основе Сесть, но остальные действительно веб-стек (JavaScript, CSS). Самый успешный из этого это Openkomodo. и это коммерческий старший брат Комодо IDE..

С другой стороны, насколько проходит Qt, новейшая версия 4.7 вы можете построить GUI, используя Qml. язык. Не позволяйте имени вводить вас в заблуждение, это не разметку, он укоренительно JavaScript с расширениями, специфичными.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top