Выбор GUI для окон (wxPy vs pyQt)
Мы планируем разработать приложение для мониторинга и настройки нашего сервиса (который работает на удаленном сервере). После долгого обсуждения мы решили использовать python как платформу для нашего приложения, потому что мы любим и знаем python. Но мы не знаем, какой инструментарий GUI предпочли для наших целей. Нам нужно быстрое (для разработки и запуска) приложение, чьими пользователями станут администраторы, менеджеры и менеджеры аккаунтов.
Есть два инструментальных средства GUI для python, которые мы знаем: wxPython и pyQT.
У кого-нибудь есть аргументы в отношении про и против? И, может быть, кто-то знает какие-либо коммерческие приложения, используя эти продукты (только python версия набора инструментов)? Желательны ссылки.
Спасибо.
Ответы
Ответ 1
Я выбираю wxPython после долгих исследований. Причины:
- Книга "wxPython in Action" от Rappin и Dunn
- Объёмные примеры, которые входят в состав загрузки wxPython
- Количество проектов, которые использовали wxWidgets
- Тот факт, что код wxPython работает одинаково хорошо в Linux, Mac OS/X и Win32
Я действительно рассматривал pyQT, и другие исследователи успешно используют его. После написания многих примеров во всех API, которые я рассматривал, я обнаружил, что wxPython выделяет для меня большинство ящиков.
Что касается Tkinter (TIX), я думаю, что он выглядит довольно устаревшим.
Если вы не используете IronPython или Jython, я бы не стал использовать связанные с ним API-интерфейсы windows. Для другого проекта, который должен быть доставлен исключительно на .Net, я планирую использовать WinForms после множества отличных отзывов от членов StackOverflow.
Ответ 2
Хорошо, я поклонник QT: он имеет более современный внешний вид. Однако - ваш выбор должен основываться на ваших реальных требованиях. Простые исследования торговли полезны для этого. Составьте список функций, которые должен иметь ваш инструментарий, и какие функции были бы хороши, а затем весить каждый элемент соответствующим образом. Затем просмотрите все ваши варианты (TKinter также), а затем запишите их в соответствии с вашим списком функций (используя веса, которые вы назначили каждому требованию к функции). В конце должно быть очевидно, какой из них подходит для вашего проекта.
Ответ 3
Мне всегда нравилась концептуальная модель Qt "сигналы и слоты", хотя я думаю, что для разработчиков, которые больше привыкли к другим моделям распространения и обработки событий, может потребоваться немного обучения. Лично, учитывая выбор, я бы выбрал PyQt из-за этого аспекта программирования.
Ответ 4
Вы написали "Существует два инструментария GUI для python, которые мы знаем: wxPython и pyQT". Вы забываете о наиболее очевидном инструментарии: tkinter. Это фактически часть основного дистрибутива python, никаких дополнительных загрузок не требуется.
Некоторые люди не любят Tk, но часто из-за невежества. Tk - прекрасный выбор для кросс-платформенного инструментария. Он использует собственные виджеты в окнах (и на протяжении многих лет), а последние версии tk используют тематические виджеты на всех платформах.
Ответ 5
Я использую wxpython в течение 3 лет.. и теперь нам пришлось переключиться на pyqt, поскольку qt интегрирован в Maya 2011.. однако wxpython более прямолинейный, и вы можете легко начать работать над ним и изучить его с zero fast.it обеспечивает и потрясающие ресурсы и декомпрессию. но QT предоставляет более мощные функции, которые вы не можете найти в wxpython, например (обнаружение с несколькими касаниями), QT также обеспечивает хорошую поддержку для рисования устройств, таких как планшетные ПК и т.д.
qt также предоставляет хорошего дизайнера, который упрощает создание интерфейсов.
одним из недостатков qt является лицензия, поскольку она не бесплатна, как wxpython
Ответ 6
Опция Windows (и Mono) для инструментария GUI предоставляется IronPython. Он обеспечивает доступ к библиотекам Winforms и WPF. Например, см. Разработка с помощью IronPython и Windows Forms и многие другие.
Если вы хотите расширить список опций, подумайте о создании веб-приложения вместо (локального) графического интерфейса. Вы говорите, что ваша служба работает на удаленном сервере, поэтому сетевое взаимодействие является частью ваших требований.
Как только вы начнете с этой дороги, Python предоставляет недоумение количества опций.
Ответ 7
Я хочу указать две сильные стороны, которые wxPython сравнивал с pyQt:
- Он использует собственные виджеты на каждой поддерживаемой платформе. Таким образом, приложения имеют собственный внешний вид. Я знаю, что PyQt использует собственные стили, но поведение ( "чувство" ), как сообщается, несколько не является родным, особенно на Mac.
- Он предоставляет более широкий выбор виджетов из коробки.
Ответ 8
Вы также должны проверить PyGTK. Он похож на pyQT в модели программирования, но не имеет каких-либо лицензионных затрат, поскольку это LGPL. Мне всегда было приятно работать с разработчиком. Основным недостатком pyQT является то, что в некоторых случаях они убирают функциональность в таких вещах, как диалоги выбора файлов, в пользу простоты для пользователя.