Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
Вопросы простые:
1) Использует ли кто Qt или GTK+ или и то, и другое, или что-то еще для GUI.
2) Что проще для изучения, с чем проще начать (просто взять и без особых проблем начать писать, типа как Delphi в свое время), я знаю, что для GTK+ есть специальные редакторы, один из них идет в комплекте, для Qt -- не знаю. Может кто подскажет, как проще использовать. Короче, что более удобно для изучения и использования.
3) Может у кого есть информация, что более эффективно? Знаю, что GTK+ жрет меньше памяти. Больше -- не в курсе. Или может даже есть мнение за чем будущее? (Может за чем-то еще, кроме этих двух, а сюда не стоит и соваться?) Вроде как Nokia выбрала Qt, Motorola -- GTK+. С лицензией вроде как у GTK+ попроще.
Короче, что учить и использовать (или вообще что-то другое).
Спасибо.
05.08.09 11:56: Перенесено модератором из 'C/C++' — Кодт
Если для Windows то WTL или MFC. Все это эффективнее (по памяти) чем тобою означенные системы. Плюс все это нативное для Windows.
WTL она правда токмо для настояшших мушшин которые знают буквы CRTP. И там и там есть class wizards и UI (dialog) editors.
Ну и само собой не лишне упомянуть что вот настояшши художники юзают htmlayout:
Здравствуйте, vadimcher, Вы писали:
V>Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
.. V>3) Может у кого есть информация, что более эффективно? Знаю, что GTK+ жрет меньше памяти. Больше -- не в курсе. Или может даже есть мнение за чем будущее? (Может за чем-то еще, кроме этих двух, а сюда не стоит и соваться?) Вроде как Nokia выбрала Qt, Motorola -- GTK+. С лицензией вроде как у GTK+ попроще.
Моторола использовала Qt в linux-телефонах (т.н. linuxjava).
Сейчас и у Qt тоже классная лицензия — LGPL. Работает (субъективно) шустрее GTK.
Есть нормальное IDE — QtCreator. Есть возможность использовать html, с неплохим javascript binding-ом к Qt-объектам.
Html рендерит очень хорошо. Ну и там еще куча вкусностей, только доки читай
Здравствуйте, vadimcher, Вы писали:
V>Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
V>Вопросы простые: V>1) Использует ли кто Qt или GTK+ или и то, и другое, или что-то еще для GUI. V>2) Что проще для изучения, с чем проще начать (просто взять и без особых проблем начать писать, типа как Delphi в свое время), я знаю, что для GTK+ есть специальные редакторы, один из них идет в комплекте, для Qt -- не знаю. Может кто подскажет, как проще использовать. Короче, что более удобно для изучения и использования. V>3) Может у кого есть информация, что более эффективно? Знаю, что GTK+ жрет меньше памяти. Больше -- не в курсе. Или может даже есть мнение за чем будущее? (Может за чем-то еще, кроме этих двух, а сюда не стоит и соваться?) Вроде как Nokia выбрала Qt, Motorola -- GTK+. С лицензией вроде как у GTK+ попроще.
V>Короче, что учить и использовать (или вообще что-то другое).
V>Спасибо.
Пишу на Qt уже несколько лет, с GTK+ не знаком поэтому могу сказать только о Qt.
И так что ты получаешь.
1 Отличный кроссплатформенный framework. Поддерживаеться Windows, Mac OS, множество Unix/Linux платформ
2 Отличная(хорошо продуманная) ООП модель, это как раз не мало важно при изучении
3 Отличная документация, хорошие примеры
4 + Много-много разных вкусностей
5 Лицензий их теперь 3 — коммерческая, GPL, LGPL
Насчет редакторов есть как уже говорили QtCreator — родная среда разработки. но я к примеру пользуюсь той же студией иногда просто обычным редактором при этом вобще не чувствую никаких затруднений. Для любителей "всего в одном" есть интеграторы для студии и eclips.
Здравствуйте, c-smile, Вы писали:
CS>Ну и само собой не лишне упомянуть что вот настояшши художники юзают htmlayout:
Когда уже *nix будет? не говоря уже о mac...
Приветствую, Сергей Савостин, вы писали:
СС> S>А кто мешает пользовать в кутэ поддержку css для интерфейса, СС> ну, если тянуть Qt только ради html интерфейса, то htmllayout imho полегче
Возможно. Но не стоит забывать что красивый интерфейс и на кутэ написать можно.
У кутэ же огромных 2 плюса — кроссплатформенность и универсальность. Тоесть можно писать любые приложения, использую только Qt, а потом запускать их на всех поддерживаемых платформах.
ИМХО, gtk попроще, ибо фич там поменьше. Но для гуя без извращенных требований — вполне себе неплох.
Однако под винду почему-то не так много gtk-приложений (и то это по большей части порты из линупсов).
V>2) Что проще для изучения, с чем проще начать (просто взять и без особых проблем начать писать, типа как Delphi в свое время), я знаю, что для GTK+ есть специальные редакторы, один из них идет в комплекте, для Qt -- не знаю. Может кто подскажет, как проще использовать. Короче, что более удобно для изучения и использования.
По-моему wxWidgets проще всего изучить — эта простая библиотека без никому ненужных наворотов, но зато с продвинутыми интерфейсами:
Редакторы Code::Blocks, DialogBlocks и wxFormBuilder
V>3) Может у кого есть информация, что более эффективно? Знаю, что GTK+ жрет меньше памяти. Больше -- не в курсе. Или может даже есть мнение за чем будущее? (Может за чем-то еще, кроме этих двух, а сюда не стоит и соваться?) Вроде как Nokia выбрала Qt, Motorola -- GTK+. С лицензией вроде как у GTK+ попроще.
Здесь wxWidgets вне конкуренции. Поскольку она использует контролы из системы, а не тащит свои, она занимает на порядок меньше места и памяти во время работы.
Здравствуйте, Mr.Cat, Вы писали:
MC>ИМХО, gtk попроще, ибо фич там поменьше. Но для гуя без извращенных требований — вполне себе неплох. MC>Однако под винду почему-то не так много gtk-приложений (и то это по большей части порты из линупсов).
Gtk под винду довольно коряв, перепутанные кнопки и страшные диалоги.
_>Здесь wxWidgets вне конкуренции. Поскольку она использует контролы из системы, а не тащит свои, она занимает на порядок меньше места и памяти во время работы.
Родные контролы — это как бы хорошо. А что с расширяемостью этих контролов? Любой контрол на Qt можно абклассныть и извратить до невозможности, и это прокатит на любой платформе. А wxWidgets?
Здравствуйте, MasterZiv, Вы писали: MZ>У меня по крайней мере 3 стоит. И замечательно работают.
Не, ну то, что они работают — это никто не спорит. Сам тот же гимп юзаю.
Просто мало таких приложений почему-то. Тут вот высказывается идея, что gtk плохо рисует под виндой. Хз, у меня и гимп, и xchat, и pidgin неплохо выглядели. Возможно, дело в том, что нужно вместе с аппликухой и gtk тянуть (метров 20, если с динамической линковкой делать), а с повторным использованием уже установленных либ в винде вроде бы бида (Была? Но вот у того же питона до сих пор как минимум 2 несовместимых сборки под винду).
Здравствуйте, astral_marine, Вы писали: _>Здесь wxWidgets вне конкуренции. Поскольку она использует контролы из системы, а не тащит свои, она занимает на порядок меньше места и памяти во время работы.
+1. А под никсами будет по сути тот же gtk, ибо бэкэнд.
Здравствуйте, astral_marine, Вы писали: _>Здесь wxWidgets вне конкуренции. Поскольку она использует контролы из системы, _>а не тащит свои, она занимает на порядок меньше места и памяти во время работы.
Родные контролы это хорошо для определенного уровня приложений.
И это жутко узкий уровень. По мне нативные контролы так это не плюс совсем.
Уж лучше хороший инструмент для создания нужных контролов.
Вот пара-тройка моих самописных:
Простой колор-чузер.
выбор типа рамки:
ну и собственно табличный редактор:
подробности тут: http://code.google.com/p/unnstudioreport/
Так, что уж лучше иметь хороший мощный механизм имплементации контролов,
чем скудный набор из нативных.
M>Родные контролы — это как бы хорошо. А что с расширяемостью этих контролов? Любой контрол на Qt можно абклассныть и извратить до невозможности, и это прокатит на любой платформе. А wxWidgets?
Приведенный Шериданом пример имеет очень сильные ограничения, что никак не подпадает под понятие "извратить до невозможности".
А легко это можно сделать, наследуешся от wxControl и выебываешся перед пользователем до умопомрачения последнего.
T>Уж лучше хороший инструмент для создания нужных контролов.
А еще лучше когда родные контролы дополняются самописными на платформах, где они не реализованы. Например wxGrid реализуется как самописный контрол: wxGrid
и wxPropertyGrid<br />
T>Вот пара-тройка моих самописных: T>Простой колор-чузер.
Нафига изобретать велосипед, если это уже в wxWidgets реализовано лет десять назад? Прорисовка в wxOwnerDrawnComboBox позволяет легко изменять фоновой рисунок в выпадающем списке<br /> Выбор цвета также имеет привычный вид для пользователя: (wxColourDialog)<br />
T>Так, что уж лучше иметь хороший мощный механизм имплементации контролов, чем скудный набор из нативных.
А еще лучше иметь родные контролы, которые дополняются мощным механизмом имплементации контролов из wxWidgets. (Примеры выше)
Здравствуйте, astral_marine, Вы писали: T>>Уж лучше хороший инструмент для создания нужных контролов. _>А еще лучше когда родные контролы дополняются самописными на платформах, где они не реализованы. Например wxGrid реализуется как самописный контрол:
А группировки и секции твой wxGrid делать умеет? А в xml сохраняться/восстанавливаться? T>>Вот пара-тройка моих самописных: T>>Простой колор-чузер. _>Нафига изобретать велосипед, если это уже в wxWidgets реализовано лет десять назад?
Нафига? Шас расскажу. Фишка в том, что не всякий программист
есть хороший цветовой дизайнер, и давая ему выбор из хорошо подобранных НЕСКОЛЬКИХ цветов мы ускоряем его работу, причем ничто не мешает мне добавить в контрол кнопку для выбора произвольного цвета.
T>>Так, что уж лучше иметь хороший мощный механизм имплементации контролов, чем скудный набор из нативных. _>А еще лучше иметь родные контролы, которые дополняются мощным механизмом имплементации контролов из wxWidgets. (Примеры выше)
Лучше иметь контролы хорошо приспособленные к выполнению задачи и хорошую систему их имплементации.
Для каждой индивидуальной задачи свои требования.
Вот этот wxGrid я полагаю жутко универсальная вещь перепичканная возможностями.
Я врятле рискну его применять где либо, потому, что он избыточен для одних задач, слишком абстрактен для других и недостаточен для третьих, но подходит для 4-го рода задачь .
ПС. кстати, че ты меня в велосипедостроении упрекаешь,
если твои контролы на wx написаны, а я пишу на Qt и у них куча отличий
мозгом то пораскинь ))
a> M>Родные контролы — это как бы хорошо. А что с расширяемостью этих контролов? Любой контрол на Qt можно абклассныть и извратить до невозможности, и это прокатит на любой платформе. А wxWidgets?
a> Приведенный Шериданом пример имеет очень сильные ограничения, что никак не подпадает под понятие "извратить до невозможности".
Я не Шеридана пример имел в виду
a> А легко это можно сделать, наследуешся от wxControl и выебываешся перед пользователем до умопомрачения последнего.
То есть все делать руками? Не, ну его нафиг. Если я хочу, например, отсабкласситься от банальной кнопки?
a> T>Уж лучше хороший инструмент для создания нужных контролов.
a> А еще лучше когда родные контролы дополняются самописными на платформах, где они не реализованы. Например wxGrid реализуется как самописный контрол: wxGrid http://www.simpol.com/guiimages/wxgrid.jpg[/img]
Если на каждый чих надо рисовать контрол с нуля — в топку. Потому что Qt тоже позволяет создать любой контрол с нуля. Но при этом Qt позволяет расширить функциональность любого контрола.