2009-06-08 2 views
17

Мы планируем разработать приложение для мониторинга и настройки нашего сервиса (который работает на удаленном сервере). После долгого обсуждения мы решили использовать python как платформу для нашего приложения, потому что мы любим и знаем python. Но мы не знаем, какой инструментарий GUI предпочли для наших целей. Нам нужно быстрое (для разработки и запуска) приложение, чьими пользователями станут администраторы, менеджеры и менеджеры аккаунтов.Выбор GUI для окон (wxPy vs pyQt)

Есть два GUI инструментария для python, которые мы знаем: wxPython и pyQT. У кого-нибудь есть аргументы в отношении про и против? И, может быть, кто-то знает какие-либо коммерческие приложения, используя эти продукты (только python версия набора инструментов)? Желательны ссылки.

Спасибо.

ответ

9

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

3

Опция Windows (и Mono) для инструментария GUI предоставляется IronPython. Он обеспечивает доступ к библиотекам Winforms и WPF. Например, см. Developing with IronPython & Windows Forms и многие другие.

Если вы хотите расширить список опций, подумайте о создании Web App вместо (локального) графического интерфейса пользователя. Вы говорите, что ваша служба работает на удаленном сервере, поэтому сетевое взаимодействие является частью ваших требований. Как только вы начнете с этой дороги, Python предоставляет bewildering amount of options.

6

Я всегда пользовался концептуальной моделью «сигналов и слотов» Qt, хотя, я думаю, для разработчиков, которые больше привыкли к другим моделям распространения и обработки событий, может потребоваться немного обучения. Лично, учитывая выбор, я бы выбрал PyQt из-за этого аспекта программирования.

2

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

12

Я выбираю wxPython после долгих исследований. Причины были:

  • «WxPython в действии» книга Rappin & Dunn
  • Объемные примеры, которые приходят как часть WxPython скачать
  • Количество проектов, которые использовали WxWidgets
  • Тот факт, что код wxPython работает одинаково хорошо в Linux, Mac OS/X и Win32

Я действительно рассматривал pyQT, и другие исследователи успешно используют его. После написания многих примеров во всех API, которые я рассматривал, я обнаружил, что wxPython выделяет большинство ящиков для меня.

Что касается Tkinter (TIX), я думаю, что он выглядит довольно устаревшим. Если вы не используете IronPython или Jython, я бы не стал использовать связанные с ним API-интерфейсы для окон. Для другого проекта, который должен быть доставлен исключительно на .Net, я планирую использовать WinForms после множества отличных отзывов от членов StackOverflow.

+0

+1: Я предпочитаю PyQt, но пример кода, который поставляется с WxPython хорошо. Приятно иметь возможность копировать и вставлять из демонстрационного приложения. – Nick

+2

Заявление «... код wxPython работает одинаково хорошо в Linux, Mac OS/X и Win32» является немного преувеличением. Я регулярно нахожу различия между тремя платформами. Некоторые виджеты подразумевают, что они не реализованы на некоторых платформах. Некоторые виджеты бросают ошибки или имеют разные типы поведения на разных платформах. Это не повсеместно, но между платформами есть реальность. –

3

Я хочу отметить две сильные стороны, которые WxPython имеет по сравнению с PyQt:

  1. Он использует собственные виджеты на любой поддерживаемой платформе. Таким образом, приложения имеют внешний вид и feel. Я знаю, что PyQt использует собственные стили, но поведение («чувство»), как сообщается, несколько не является родным, особенно на Mac.
  2. Он обеспечивает более широкий выбор виджетов из коробки.
+3

В пункте 2: это проклятие, как благословение. PyQt имеет меньше виджетов, но они более мощные, потому что они более гибкие (например, древовидное представление). Я отказался от wxPython, потому что документы являются неоднородными, и в прошлом я обнаружил слишком много ошибок. Я хочу, чтобы wxPython сосредоточился на том, чтобы сделать меньший поднабор виджетов более надежным и лучше документированным, а не подход к кухне, который, по-видимому, имеет. – Nick

4

Вы писали: «Существует два инструментария GUI для python, которые мы знаем: wxPython и pyQT». Вы забываете о наиболее очевидном инструментарии: tkinter. На самом деле это часть основного дистрибутива python, без дополнительных загрузок.

Некоторые люди не любят Тк, но это часто связано с незнанием. Tk - прекрасный выбор для кросс-платформенного инструментария. Он использует собственные виджеты в окнах (и на протяжении многих лет), а последние версии tk используют тематические виджеты на всех платформах.

+0

Tkinter v8.5 выглядит намного лучше, чем предыдущие версии. Если ваш графический интерфейс требует только основных виджетов или в основном основан на холсте, то Tkinter - удобный вариант. Я нашел http://www.tkdocs.com/, чтобы стать отличным ресурсом. – CyberFonic

+0

Хотя я согласен, я бы также сказал, что если ваша программа в основном основана на тексте, нет ничего, что можно сравнить с текстовым виджнем Tk. Недостатком является отсутствие хорошего варианта печати. Тем не менее, он превосходит любой виджет в наборе инструментов wxPython на километры. –

4

Я использую wxpython в течение 3 лет .. и теперь нам пришлось переключиться на pyqt, поскольку qt интегрирован в Maya 2011 .. однако wxpython более прямолинейный, и вы можете легко начать работать над ним и изучить его с нуля быстро .it обеспечивает и потрясающие ресурсы и декомпозицию. но QT предоставляет более мощные функции, которые вы не можете найти в wxpython, например (обнаружение с несколькими касаниями), QT также обеспечивает хорошую поддержку для рисования устройств, таких как планшетные ПК и т. д.

qt также предоставляет хороший конструктор, который упрощает создание интерфейсов.
один из недостатков является то, Qt это лицензия, так как это не бесплатно, как WxPython

+0

Предложите вам пересмотреть ... Сам QT является LGPL. PyQT - GPL, но PySide - LGPL. Таким образом, лицензии * бесплатны, но если вы используете PyQT, и вы не хотите, чтобы весь ваш код подвергался GPL, вам необходимо приобрести коммерческую лицензию, тогда как PySide не имеет таких ограничений. –

Смежные вопросы