Настольное приложение Python с браузером в качестве интерфейса? - PullRequest
20 голосов
/ 10 апреля 2010

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

Причина в том, что я немного знаю о Python, но думаю, что справлюсь, если у меня есть некоторые базовые корни, которыми я могу пользоваться и которыми манипулировать, и это будут HTML, CSS и Javascript.

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

Ответы [ 4 ]

10 голосов
/ 10 апреля 2010

Python предлагает две вещи, которые должны вас заинтересовать:

  • веб-сервер в стандартной библиотеке
  • стандартизированный интерфейс для веб-приложений, называемый WSGI

Так что добавить веб-интерфейс в ваше приложение относительно просто. Например, в Mercurial (система управления версиями) у вас есть команда hg serve, которая запускает веб-сервер.

Чтобы увидеть, как Python запускает веб-сервер и приложение WSGI, просто выполните:

python -m 'wsgiref.simple_server'

Вы можете посмотреть исходный код wsgiref или некоторый учебник WSGI, чтобы создать простое приложение.

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

3 голосов
/ 10 апреля 2010

Вы можете использовать Пижама . Это порт Google Web Toolkit для Python, что в основном означает, что вы пишете на Python, и оно компилируется в HTML и JS.

1 голос
/ 10 апреля 2010

Существует множество отличных инструментов для работы с графическим интерфейсом - HTML, CSS и Javascript. Если вы ничего не знаете, задайте отдельный вопрос с правильными тегами.

Сторона Python в таком расположении не должна иметь собственного графического интерфейса, а просто запустить подкласс HTTP-сервера стандартной библиотеки Python, просто обслуживая файлы HTML, CSS и JS и данные через JSON на других URL-адресах, которые JS может достичь с помощью Ajax-методов, по сути, реализуя хранилище и бизнес-логику - так что далеко не очевидно, какой «инструмент GUI» вы могли бы хотеть для него?!

Просто разработайте сторону Python самостоятельно (например, с IDLE, Wingware, SPE или чем угодно) и HTML / CSS / Javascript отдельно, со своим собственным «инструментом GUI». Все, что Python будет делать с этими файлами, это статически обслуживать их, в конце концов.

Вы могли бы подумать об использовании некоторых шаблонов на стороне Python, таких как Mojo & c, но я рекомендую избегать этого: скорее, полностью придерживайтесь «тонкой серверной архитектуры», сделайте сторону Python RESTful-сервером для бизнеса слои логики и хранилища, а также все GUI работают в браузере.

0 голосов
/ 10 апреля 2010

Вы прибегаете к веб-браузеру только потому, что у вас возникли трудности с наборами инструментов для виджетов Python, такими как Tkinter, wxpython и pyqt?

Вы пробовали Qt Designer ? Это графический дизайнер GUI, позволяющий очень быстро и легко создавать великолепно выглядящие GUI. Он устанавливается автоматически с PyQt.

http://www.riverbankcomputing.co.uk/software/pyqt/download

...