Выбор GUI для окон (wxPy vs pyQt)

17

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

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

Спасибо.

    
задан Golovko 08.06.2009 в 18:26
источник

8 ответов

12

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

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

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

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

    
ответ дан CyberFonic 11.06.2009 в 08:25
источник
  • +1: Я пользуюсь PyQt, но пример кода, который поставляется с wxPython, хорош. Приятно иметь возможность копировать и вставлять из демонстрационного приложения. –  Nick 23.12.2009 в 12:54
  • Утверждение «... код wxPython работает одинаково хорошо в Linux, Mac OS / X и Win32» является немного преувеличением. Я регулярно нахожу различия между тремя платформами. Некоторые виджеты подразумевают, что они не реализованы на некоторых платформах. Некоторые виджеты бросают ошибки или имеют разные типы поведения на разных платформах. Это не повсеместно, но между платформами есть реальность. –  Bryan Oakley 14.03.2010 в 17:52
9

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

ответ дан Shane C. Mason 08.06.2009 в 18:36
источник
6

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

    
ответ дан Alex Martelli 08.06.2009 в 19:02
источник
4

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

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

    
ответ дан Bryan Oakley 19.08.2009 в 18:14
источник
  • Tkinter v8.5 выглядит намного лучше, чем предыдущие версии. Если ваш графический интерфейс требует только основных виджетов или в основном основан на холсте, то Tkinter - удобный вариант. Я нашел tkdocs.com отличным ресурсом. –  CyberFonic 13.01.2010 в 02:35
  • Хотя я согласен, я бы также сказал, что если ваша программа в основном основана на тексте, нет ничего, что можно сравнить с текстовым виджнем Tk. Недостатком является отсутствие хорошего варианта печати. Тем не менее, он превосходит любой виджет в наборе инструментов wxPython на километры. –  Bryan Oakley 13.01.2010 в 04:07
4

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

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

    
ответ дан Moayyad Yaghi 01.05.2010 в 19:04
источник
  • Предложите вам пересмотреть ... Сам QT является LGPL. PyQT - GPL, но PySide - LGPL. Таким образом, лицензии бесплатны, но если вы используете PyQT, и вы не хотите, чтобы весь ваш код подвергался GPL, вам необходимо приобрести коммерческую лицензию, тогда как PySide не имеет таких ограничений. –  Jason S 25.07.2013 в 20:36
3

Опция Windows (и Mono) для инструментария GUI предоставляется IronPython . Он обеспечивает доступ к библиотекам Winforms и WPF. Например, см. Разработка с помощью IronPython & amp; Windows Forms и многие другие.

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

    
ответ дан gimel 08.06.2009 в 19:00
источник
3

Я хочу указать две сильные стороны, которые wxPython сравнивал с pyQt:

  1. Он использует собственные виджеты на каждой поддерживаемой платформе. Таким образом, приложения имеют внешний вид и feel . Я знаю, что PyQt использует собственные стили, но поведение («чувство»), как сообщается, несколько не является родным, особенно на Mac.
  2. Он предоставляет более широкий выбор виджетов из коробки.
ответ дан user127712 23.06.2009 в 19:10
источник
  • В пункте 2: это проклятие, а также благословение. PyQt имеет меньше виджетов, но они более мощные, потому что они более гибкие (например, древовидное представление). Я отказался от wxPython, потому что документы являются неоднородными, и в прошлом я обнаружил слишком много ошибок. Я хочу, чтобы wxPython сосредоточился на том, чтобы сделать меньший поднабор виджетов более надежным и лучше документированным, а не подход к кухне, который, по-видимому, имеет. –  Nick 23.12.2009 в 12:51
2

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

    
ответ дан lambacck 08.06.2009 в 19:08
источник