wxWidgets vs QT

January 31st, 2009 Begemot Posted in Oбщее, Qt

Ну вот прошло две недели после новости про qt lgpl, страсти вокруг открывающихся перспектив кажется немного поутихли. Я тоже вроде немого остыл. Первое мысль была что делать – говорят Qt лучше начинать что ли ее осваивать – с одной стороны заманичиво, с другой стороны придется все начинать с нуля, а осваиваю я крайне медленно:) Тем не менее желание было, что называется загорелся. Даже скачал саму библиотеку, кучу книжек к ней, позаносил в закладки сайты…

Больше всего меня растроило и убедило думать о смене библиотеке,  то что даже люди которых я считал чуть ли не апологетами wxWidgets в рунете – в один голос сказали что QT все-таки продвинутее и надо переходить на нее:(

Но несмотря на все хвалебные диферамбы в адресс qt у нее есть пару минусов, первое что мне очень не нравится это не-нативность контролов – я сам сейчас пытаюсь привыкнуть к KVirc  и кривость поведения обычных едит-боксов уже не раз заставляла меня вспоминать разработчиков, их родственников по женской линии и кривость рук. Окончательно меня добил пост на rsdn

Я после того, как пришлось несколько лет назад портировать продукты на Mac от QT плююсь. И не потому, что либа плохая, как раз наоборот — программировать приятно и удобно. Потому ее и выбрал ( ага, на безрыбье-то  ) Но… Пользователи ее терпеть не могут. Точнее то, как при ее использовании выглядит продукт. А выглядит он нестандартно и работает тоже нестандартно. Мелочей подобных описанным выше навалом  ! В итоге mac-пользователи мягко говоря разочаровываются. И высказывают это свое разочарование на форумах в духе “Ну не знаю… может где-то оно и нормально работает, но вот на mac это дерьмо дерьмом и пользоваться нормально невозможно”. Ну нафиг мне такое счастье, я лучше GUI отдельно напишу, значительно дешевле выходит в итоге.

Кстати, почему-то широко распространено мнение, что Opera на QT написана. Так вот, нифига подобного! Точнее уже нифига подобного, они QT они отказались еще в 2003, бо как столкнулись с точно такими же проблемами.

Я уже было решил потренироватся на кошках, в смысле не проекте который не включает стандартное гуи, а как раз наоборот требует универсального и одинакового custom draw look. Но тут вылез второй большой минус (имхо) насколько я понял маленькие приложения и qt понятия диаметрально противоположные.  Еще одна цитата  с rdsdn

А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.
А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие…

Собирал qt 4.4.3 с выключенными rtti, exceptions, accessibility(интересно, кто нибудь использует эту красоту?), qt3support.

Резльтат по размеру —
hello world статически слинкованный пример с одним виджетом, — 6.02 Мб, зависимость только от системных библиотек windows.
Он же запакованный — 2.8 метра.

Почему-то не собирались примеры с веб китом… Постоянно показывались ошибки линковки на классы, экспортируемые из QtWebKit, хотя сам libQtWebKit.a собрался.

Вообщем пока наверное я отложу идею в сторону. Тем более с LGPL тоже имхо вопрос пока в воздухе, в существующей бета версии есть только либы для GCC, но нет для майкросовтовского компилятора, просто не сделали или тут есть глубокий смысл пока остается только гадать.

Related:

Posted in Oбщее, Qt

18 Responses to “wxWidgets vs QT”

  1. IMHO wxWidgets вполне юсабельная библиотека.Особенно мне нравится сочетание CodeLite+wxFormBuilder.Устанавливается и используется без каких-либо проблем на Win/Mac/Linux.
    Использовать QT даже не собирался.

  2. Угу-угу, я тоже проделал такой же путь: скачал – установил – почитал – скомпилировал – заценил результат – порылся на форумах – разочаровался 🙂 Буду и дальше осваивать wxWidgets

  3. По мне так ненативность Qt – большой плюс для разработчиков: на всех платформах виджеты ведут себя (по крайней мере в теории) единообразно, должно быть меньше глюков и особенностей, связанных именно с разным поведением на разных платформах. Также нет проблемы least common denominator (“наименьшего общего знаменателя”), свойственной многим нативным межплатформенным библиотекам.

    Что касается Оперы, если она не использует Qt, то почему же она требует библиотеки Qt для работы под Линуксом?

    Размер собранных программ – это да, при динамической линковке будет большим (если учитывать размер всех библиотек).

    Что касается Макинтоша, то ругают не только Qt, но и wxWidgets. Не знаю, какую больше. И та, и та, мол, дерьмо, и программы на них собранные – тоже дерьмо.

    Хотелось бы этот вопрос изучить поподробнее – узнать, в чем конкретно проявляются недостатки Qt на Макинтоше – по пунктам.

    Я пока только начинаю осваивать Qt, но мне уже нравится Qt Creator с его редактором форм. Это тоже плюс – стандартная кроссплатформенная среда разработки. Меньше геморроя – не надо ничего настраивать, в отличие от wxWidgets. Что еще радует – довольно быстро собираются проекты.

    Жаль только, PyQt выходит только под лицензиями GPL и commercial. Очень жаль…

  4. Сегодня слушал подкас радио-Т за сентябрь, месяц они там ругали какой отстой мессенджер яндекса под макосом, просто писец, и все потому что на Qt написан:)

    Правда там вроде обещают qt на Cocoa переписать, соответственно вроде должно стать много лучше. Но все равно не нативность будет переть.

    В принципе CodeBlock тоже вроде стандартный под все платформы.

    А что под вх медленно проекты собираются? Я после того как научился precompiled header с wxwidgets использовать, дык вообще никаких проблем не имею с этим

  5. Опера никогда не была написана на qt. Вот ссылка на материал по этому делу: http://my.opera.com/kilsmo/blog/2008/01/29/opera-is-not-based-on-qt :
    >> Opera has never been based on Qt. Opera developed its own lightweight portability layer, to be able to move to all kinds of platforms, even where no cross platform toolkits are available. Opera for Linux is using Qt the same way as Opera for Windows is using Windows API:s to connect to the platform.

  6. Aleksey, спасибо за ссылку про Оперу.

    Если не ошибаюсь (хотя я могу ошибаться), Qt под Cocoa выйдет в марте – версия 4.5.

    CodeBlocks, вроде как стандартный, но лично мне нравится, когда весь основной инструментарий разрабатывается одной командой. Это не более чем личное предпочтение.

    С precompiled headers для wxWidgets я не разбирался. Cкорее всего, из-за этого у меня сложилось впечатление медленности сборки, по крайней мере под mingw.

    Да, и еще про wxWidgets и Mac OS X. Насколько мне известно, поддержка Mac OS X сильно отставала от других платформ до самого последнего времени, об этом, в частности, писал один из разработчиков wxWidgets в mailing list. И до сих пор она не так хороша, как поддержка Windows или Linux.

    В wxWidgets 3.0 будет поддержка Cocoa, но насколько хорошая она будет, и когда вообще выйдет версия 3.0, неизвестно.

  7. >в существующей бета версии есть только либы для GCC, но нет для майкросовтовского компилятора

    Всё есть. Я качал Qt и спокойно собирал как под VC6, так и под VC2005, причем с разными опциями. Наверное около 3-х дней упорно экспериментировал с целью уменьшения размера экзешника. В результате ничего не получилось. Монолитность, шаблоны… _минимальный_ размер 3MB. В общем, для шаровары wxWidgets будет лучше.

  8. Dmitry Krutskih Says:

    > В wxWidgets 3.0 будет поддержка Cocoa, но насколько хорошая она будет, и когда вообще выйдет версия 3.0, неизвестно.

    Кто мешает скачать wip билд из svn и писать на нём?

  9. > Кто мешает скачать wip билд из svn и писать на нём?

    Никто

  10. Запакованый exe – 2,8 Мб? Слишком много, тут(http://www.prog.org.ru/index.php?topic=3974.msg17462) советуют как сделать 1Мб. Сам пробовал – работает.

  11. Вот только это вся наверное подходит для статической компиляции, в то время как сама статическая компиляция не всем подходит 🙂

  12. Именно о статической(в посте тоже говорилось о статической линковке). А чем она не подходит?

  13. > Именно о статической(в посте тоже говорилось о статической линковке). А чем она не подходит?

    LGPL версия Qt запрещает ститическую линковку.

  14. Совершенно верно – придется покупать 🙁 Но 2,8 Мб – не соответствует действительности. Мой результат – 1,1 Мб(QT 4.3 & MS VS 2005), без правки исходников QT. И виджет не один – menubar, toolbar, statusbar, splitter, 2 textedit, buttons, dial widget

  15. wxGTK медлительна и ешё более ненативна под Гномом чем Qt/
    ЗЫ У меня t. вылезли за край поля ввода сейчас.

  16. > wxGTK ешё более ненативна под Гномом чем Qt

    Интересно, как такое возможно?

    GNOME основан на GTK.
    KDE основан на Qt.

    wxGTK использует GTK, значит под GNOME она по определению 100% нативна.

    Приложения Qt 100% нативны для KDE, но не нативны для GNOME.

  17. […] своих утилит на unixMac OS. В свое время выбрал wxWidgets вместо Qt, так как Qt на тот момент была еще слишком дорога и из-за […]

  18. Poliglot Says:

    Хочу попробовать PyQt4 для Windows.
    Пытался скачать с riverbankcomputing.co.uk. Файл скачивался со скоростью 4 Килобайт в секунду. Не выдержали нервы. Сейчас он вообще не скачивается, зависает (FireFox).

    Если у кого есть пакет PyQt для Python2.6 и Qt4.6 для Windows, пришлите пожалуйста на meteese@rambler.ru.