Какие-нибудь действительно современные, красивые настольные приложения, разработанные с помощью PyQt/PySide?

Недавно я начал использовать Python для веб-разработки, это круто; Я видел программы, разработанные на QT/C++, что достаточно хорошо с точки зрения эстетики; Я только что заметил новый проект PySide (который предоставляет лицензию LGPL Qt для Python и пока не поддерживает Windows).

В свете вышесказанного я вижу возможность использования Python + PyQt/PySide для разработки кроссплатформенных приложений в будущем :), но сейчас у меня есть несколько сомнений:

  1. Можно ли использовать PyQty/PySide для разработки действительно сложного/современного пользовательского интерфейса? Может ли кто-нибудь дать мне несколько советов, чтобы взглянуть на красивые скриншоты приложений, разработанных на Python + QT?
  2. Как насчет производительности при использовании Python + QT для настольного приложения?

Заранее спасибо!


person Edwin Yip    schedule 07.05.2010    source источник


Ответы (4)


Можно ли использовать PyQty/PySide для разработки действительно сложного/современного пользовательского интерфейса?

Настольные приложения бывают самых разных разновидностей — некоторые красиво оформлены, некоторые чрезвычайно индивидуализированы и практически не похожи на стандартное приложение для этой ОС. То же самое можно сделать с Qt/PyQt/PySide. Как сказал Алекс, не должно быть видимой разницы между приложением, написанным с помощью PyQt/PySide, и приложением, написанным с помощью Qt на C++. Любая программа, написанная с помощью Qt4 (с использованием привязок или без), по умолчанию будет выглядеть как стандартное современное приложение.

Конечно, есть функции недавних выпусков Windows (и, вероятно, некоторые в Mac OS X), которые не поддерживаются сразу и по умолчанию в Qt, но вы почти всегда можете написать некоторый код для конкретной платформы для тех ситуаций, когда указанные функции действительно необходимы. важный.

Может ли кто-нибудь дать мне несколько советов, чтобы взглянуть на красивые скриншоты приложений, разработанных на Python + QT?

Лучшая программа с открытым исходным кодом, которую я знаю и которая написана с помощью PyQt, это Эрик -- IDE на основе Python.

Как насчет производительности использования Python + QT для настольного приложения?

Для большинства приложений разница в производительности между приложением C++ Qt и приложением PyQt не заметна. Но если вам действительно нужна производительность, вы можете написать определенные части приложения на C++ и сделать привязки доступными на Python, чтобы вы могли интегрировать их.

person Kaleb Pederson    schedule 07.05.2010
comment
скорость разработки Python и Qt потрясающая. В последнее время в компании, в которой я работаю, был очень срочный проект. Мы решили попробовать Python+Qt для ускорения разработки и преуспели. Обратите внимание, что это был первый проект на питоне для всей команды, и у нас была всего неделя, чтобы изучить его перед стартом. Я был поражен гибкостью и простотой Python. (прежний опыт работы с VCL/.NET/C++/Qt) - person Maxim Popravko; 18.05.2010
comment
Но! Обратите внимание, что если вы хотите добиться необычного поведения или видения от Qt, это ОЧЕНЬ просто (благодаря отличной документации и чистому и открытому коду Троллей), но требует некоторой работы. Готовые компоненты пользовательского интерфейса Qt просто ужасны по сравнению с .NET и даже VCL. И (СЮРПРИЗ!) нет хороших библиотек компонентов (ни за деньги, ни бесплатно) для Qt. - person Maxim Popravko; 18.05.2010
comment
@Max, не могли бы вы уточнить, что компоненты интерфейса ужасны по сравнению с .NET и VCL? - person Kaleb Pederson; 24.05.2010
comment
@Kaleb Pederson 1. Пользовательский интерфейс Qt выглядит немного чуждым по сравнению с родными приложениями в Windows, это очень раздражает. 2. *Views и *Widgets, унаследованные от AbstractItemView, имеют довольно странный и сложный интерфейс. F.ex. попробуйте заполнить один элементом данных по элементу, а затем сделайте это с помощью собственного .NET, DevExpress, VirtualTreeView или любого другого компонента такого типа. Затем попробуйте использовать QDockWidget и сравните его функциональность с любым другим известным вам компонентом док-станции. - person Maxim Popravko; 26.05.2010
comment
@Kaleb Pederson Затем попробуйте реализовать пользовательский интерфейс с помощью QtDesigner, используя QTableWidget fx, попробуйте настроить внешний вид представления (начните с установки правильной ширины и поведения для столбцов или строк). Я столкнулся с многочисленными небольшими проблемами при настройке пользовательского интерфейса с помощью Qt, это была небольшая их часть. - person Maxim Popravko; 26.05.2010
comment
Концепция @Kaleb Pederson Layouts несколько хороша, как сигнал / слот. - person Maxim Popravko; 26.05.2010
comment
@Max - Спасибо за отзыв. Я нахожусь в Linux 99% времени и не замечал ни одной из этих проблем, но я потрачу некоторое время на сравнение, когда у меня будет шанс. QTableWidget — это удобный виджет, который намеренно не дает вам полного контроля над обычными виджетами. Обычно вы использовали бы подкласс QAbstractItemModel и соответствующий подкласс QTableView. По общему признанию, Designer немного ограничен и ограничен (хорошо, довольно ограничен по сравнению с Expression Blend и подобными вещами). - person Kaleb Pederson; 27.05.2010
comment
@Калеб Педерсон. В QTableView/Widget: удобный виджет предназначен для удовлетворения большинства обычных потребностей разработчиков и делает это самым простым и очевидным способом, не так ли? Не в Qt. И дизайнер ограничен по сравнению с любым, что я когда-либо видел, если вы пытаетесь найти очевидные вещи, такие как привязка данных или настройка компонентов, но у него есть удивительные функции, которых нет ни у одного другого инструмента пользовательского интерфейса. Пользовательские свойства и продвижение классов — некоторые из них. Хотя это явная проблема для софта, сделанного кодерами, для кодеров, когда делаешь что-то в основном для развлечения, а не для денег. Дьявол в деталях. - person Maxim Popravko; 27.05.2010
comment
Если кто-то придет, чтобы прочитать это (к концу 2014 года), мне кажется - полный новичок, начинающий исследовать PyQt4), что все значительно улучшилось с тех пор, как этот вопрос был опубликован... - person heltonbiker; 06.12.2014
comment
@heltonbiker Как? Источники? Примеры? - person Penghe Geng; 28.03.2015


Нет никакой эстетической разницы между внешним видом Qt на основе C++ и оболочками PyQt и PySide поверх него. Я практически не использую настольные приложения с графическим интерфейсом, поэтому я не могу указать вам на какие-либо из этих комбинаций языка/инструментария, но если вам нравится первое, вам будет трудно отличить его каким-либо образом от второго.

person Alex Martelli    schedule 07.05.2010

Немного поздно, но для записи такие приложения, как Skype, GoogleEarth или последние версии VLC (медиаплеер и многое другое), использовали библиотеки Qt.

person Sun Wukong    schedule 08.08.2010
comment
Я не думаю, что в Skype или Google Earth есть Python, вы уверены? - person Janus Troelsen; 09.07.2013