2010-06-14 2 views
5

Можно создать дубликат:
Is Python any good for GUI development?Какие многоплатформенные графические интерфейсы можно использовать для написания приложений Python?

Я написал приложение Python GUI и сделал это работать на Linux, Windows и Mac.

Я использую схему PyGtk. Окончательный результат не очень хорош: приложение выглядит ужасно на Mac, и на самом деле он не является «родным» ни в Windows. Кроме того, в Mac поведение окон иногда бывает неправильным, а модальные диалоги появляются под основными окнами.

я исследовал другие механизмы, и я обнаружил, что перенос может быть очень трудно:

  • PyQt это огромный, трудно установить и распространять под Mac;
  • PyGui плохой: мне нужны таблицы и деревья, по крайней мере;
  • WxPython состояние явно, что вы должны использовать пользовательские питона сборки для Mac
  • Tkinter: не проверял, только создалось впечатление, что она устарела

Я знаю, что этот вопрос может показаться похожим на https://stackoverflow.com/questions/394039/which-python-gui-framework, но в этой теме проблема переносимости на самом деле не учитывается.

Windows и Mac являются обязательными, поскольку большинство моих пользователей имеют эти системы.

Можете ли вы также предложить несколько книг?

+0

Посмотрите этот: Http: //stackoverflow.com/questions/115495/is-python-any-good-for-gui-development – systempuntoout

+0

Как вы получаете PyGTK, установленный на Windows? – phkahler

+0

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

ответ

0

Ну, на самом деле я попробовал несколько решений, и я думаю, что я продолжу с wxPython.

Есть некоторые заметные проблемы, прежде всего, что я должен использовать старый 2.5 Python. Однако мне удалось создать переносимый каталог .app для Mac и автоинсталляцию .exe для Windows (и пару Makefile (ы) для их создания).

Портирование не было инициировано еще (реальная работа и более насущные проблемы прибыли :-().

Спасибо всем, кто предложил альтернативные подходы, но некоторые проблемы конкретных приложений сделали этот выбор не очень привлекательными.

  1. Я не хочу, чтобы мое приложение, чтобы использовать только один язык/технологию, для удобства обслуживания и развертывания, поэтому гибридный Flash/воздух и т.д. подходы были отброшены.
  2. приложения также будет работать в автономном режиме, так что нет клиента/сервера доступный.
  3. Будучи wxPython не самым простым в использовании фреймворком, я работал с качелями в прошлом и имел очень тяжелое время. Возможно, в то же время доступны более мощные инструменты, но я нахожу wxGlade достаточными для моих нужд, кроме того, аргумент единственной платформы применим к использованию Java

Однако у меня были свои взгляды, расширенные из всех ответов. Еще раз спасибо

2

По моему опыту, программирование GUI в Python для платформы Mac никогда не бывает счастливым. По общему признанию, я работал только с PyQT и PyGTK. Поведение окон никогда не кажется правильным, и виджеты не работают должным образом. Тем не менее, здесь есть ресурс, который содержит список, объявление до тошноты, GUI инструментарий для Python и соответствующие платформы они ориентированы:

http://wiki.python.org/moin/GuiProgramming

+0

Эта страница не поддерживается: например, она говорит о PyGui, что она не поддерживает Windows, хотя она и делает. – Iacopo

+0

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

+0

@lacopo: применяется стандартный аргумент Wiki. Если вы видите ошибку, продолжайте и исправьте ее. – Oddthinking

0

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

Веб-сайт стал премьерой метаплатформы, не так ли? Не могли бы вы использовать интерфейс HTML/Javascript/Flash?

Что-то вроде этого?

http://www.adobe.com/devnet/flex/articles/flex_ui_print.html или этот?

http://pyjs.org/ (поиск Пижама-Desktop, когда вы там)

+0

Недостаточно того, что он использует python и поэтому нуждается в наборе инструментов, который поддерживается python. В то время как flex и AIR довольно круты и неплохо работают на кросс-платформе (кроме довольно тяжелой), я не думаю, что это решает его проблему. – MacAnthony

+0

У меня есть довольно функциональная библиотека, которую приложение обертывает. Библиотека довольно pythonic, и я бы не хотел ее менять; Я хочу расширить и улучшить, а не переписывать с нуля. Работа с PyGTK была быстрой, и под Linux это здорово. В противном случае я бы тоже рассмотрел Java/Swing. – Iacopo

+1

Flex-статья, с которой я связан, заключалась в использовании Python в интерфейсе Air, обмениваясь с мертвым XMLRPC от Python. Статья Pajamas посвящена запуску приложений, похожих на GWT, на рабочем столе в Python. Я НИКОГДА не предлагаю вам менять языки, я предложил вам изменить платформы пользовательского интерфейса из операционных систем в браузеры. – gomad

2

The "Code once, run everywhere" quest is a bogus one, насколько ГПИ обеспокоены.Если вы не хотите, чтобы версия Mac, которая выглядит &, чувствует себя чужими и дерьмовыми, вам придется разработать для нее отдельный слой графического интерфейса.

+0

Я бы назвал это неправдой. В качестве комментария он получит мой голос, но не как ответ. Код один раз, бегает везде, напоминает мне о фиаско Flash: P – sorin

0

Возможно, вы предоставили ответ на ваш комментарий на мой первоначальный ответ:

Вы рассмотрели раствор Jython/Свинг? Используйте Java для своего графического интерфейса и существующий код Python для логики?

0

Должен сказать, что для этого я использую PyQt. Я разрабатываю для Linux, Windows и Mac OS X. И хотя, когда я начал, было больно заставить его работать в Mac OS X (в основном потому, что мне также нужен scipy), теперь он намного лучше, и PyQt4 можно установить без проблемы. Вам просто нужно скачать архивы от www.riverbankcomputing.co.uk.

Кроме того, еще один вариант заключается в том, чтобы включить PyQt4 в ваше приложение и обновить sys.path, чтобы указать, где установлен PyQt4. Это то, что я делаю, чтобы люди не могли ничего устанавливать для использования моего приложения.

9

Try Kivy, это с открытым исходным кодом & перекрестная платформа.

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

+0

у киви много проблем – timger