VS2005, C++, Win: Альтернативы GUI-framework-ам
если приложение чисто виндовое, то рекомендую WinForms.
под C# он конечно лучше идет, но на C++, если руку набить, тоже нормально получается.
ps
QT, GTK+, wxWidget - под винду скорее всего ужасно будут смотреться.
вот у "аналогов" — кажется, хуже.
QT выглядит кхм... не совсем обычно
то рекомендую WinForms.ну ты кагбы это, зачем такое советовать?
у майкрософта современной гуи библиотекой считается WPF. Мое мнение после первого знакомства с WPF — гораздо продуманей в архитектурном плане чем WinForms.
А чем WTL муторен и неудобен?
Да и пока боязно мне его использовать, что то мне кажется не приживется он.о, это почему?
MDI стилемэто тоже уже моветон вроде
WPF он случайно не на смену WinForms пришел?
Че та нифига у меня WPF проекта нет в VS2005. Наверно что то не доставил
WTL - это входит в ATL?
MDI просто хоцца.
Не приживется как мне кажется, потому как прожорлив, а слабые компы даже новые выпускаются (те же нетбуки).говорят, ресурсы он жрет только на спец. эффектах, обычными формочками вроде как все ок, за редким исключением
гораздо продуманей в архитектурном плане чем WinFormsно, как это принято у майкрософта в первых версиях, есть и архитектурные недоделки
WTL - это входит в ATL?Наоборот, WTL это расширение ATL.
Наоборот, WTL это расширение ATL.он еще поддерживается?
последний раз когда я сталкивался с WTL, то это была какая-то "подпольная" либа - непонятно кем и на каких условиях поддерживаемая.
если верить вики последняя версия 2007 года
Пока к QT склоняюсь: и неплохой GUI редактор есть, и маны хорошие вроде. Тока вот .dll-ки к QT на 9мб
Qt это хорошо. Можно делать гуй который под Windows как родной. Дорого только. Тебя стоимость лицензии не волнует чтоль? А от WTL осталось впечатление, как уже сказал , чего-то подпольного. Она позволяет делать очень компактные и шустрые небольшие приложения, но делать на ней что-то более-менее сложное я б не взялся, многовато руками всего надо будет делать.
Если у WTL только стандартный набор, то мне проще на WinAPI все то же самое набросать (разве что всякие CommonControls надо самому делать).
Если у WTL только стандартный набор, то мне проще на WinAPI все то же самое набросать (разве что всякие CommonControls надо самому делать).
Стоимость лицензий меня волнует в последнюю очередь - Студия у меня тоже паленая.
Хочется именно GUI лепить в редакторе.
Стоимость лицензий меня волнует в последнюю очередь
Тогда посмотри QT. WTL это тонкая обертка над WinAPI, скорее всего тебе её будет мало.
HTMLayoutТы его использовал? какие впечатления? не врут?
Основное, что не нравится - вместо скрипта вызывается язык, на котором пишешь (С++, С# или один из кучи других языков, к которым есть биндинг). А я хотел бы вместе с HTMLayout использовать еще и JsTemplate
там тоже можно из JS дёргать API проги, которая держит контрол.
Еще не нравится тем, что в этом случае придется использовать ту версию контрола, которая стоит на текущей системе, а это значит надо будет верстать под тормозной и слишком старый IE6. Хочется же, чтобы все работало из коробки, причем быстро и одинаково на всех машинах.
Знаешь ли ты, что для того, чтобы засунуть в javascript какие-то методы С++/С# тебе нужно написать и зарегистрировать в системе activex? Это очень, очень неприятно.
Знаешь ли ты, что для того, чтобы засунуть в javascript какие-то методы С++/С# тебе нужно написать и зарегистрировать в системе activex? Это очень, очень неприятно.Необязательно, но тем не менее это геморно, неудобно и отвратительно документировано.
Спасибо, откликнувшимся. Пока QT решил помучать.
wxWidget - под винду скорее всего ужасно будут смотреться.Это ты зря. В описании wxWidgets сказано, что там для каждой платформы native код используется, т.е. приложение будет везде как родное выглядеть. Под MacOS, я видел, используется Carbon, под linux - GTK или Motif, под винду тоже как родное выглядит.
К тому же на нем вроде прогать очень удобно (у меня сотрудник на работе недавно первое приложение на нем написал, очень положительные отзывы).
В общем, прежде чем сказать что-то, посмотрел бы хоть скриншоты .
общем, прежде чем сказать что-то, посмотрел бы хоть скриншоты .какие-то они страшненькие, т.е. на винду похоже, но дцать лет назад.
http://wxwidgets.org/images/screens/symlab.png
http://wxwidgets.org/images/screens/kephra.png
http://wxwidgets.org/images/screens/mahogany.jpg
вроде вполне себе по-виндовому?
http://wxwidgets.org/images/screens/kephra.png
http://wxwidgets.org/images/screens/mahogany.jpg
вроде вполне себе по-виндовому?
вроде вполне себе по-виндовому?толька рамка окон xp-шная
все остальное древнее.
где, например, градиенты в тулбарах?
Я пользуюсь Filezilla под виндой и мне её интерфейс вполне по душе. Минималистично, но удобно.
реально удобно писать? а то что там MDI еще не реализован и DataGrid кривая - это враки всё? Самому интересно, стоит ли переходить на WPF.
HTMLayoutТы не в курсе, он умеет себя рендерить (с прозрачностью) на OpenGL/DirectX окна?
у майкрософта современной гуи библиотекой считается WPFМоё субъективное мнение в том, что WPF задуман хорошо, а вот выполнен не очень. Даже после сервис пака в нём остаётся большое количество проблем.
Во-первых, тема со шрифтами. Я не знаю, что там на MAC, а под виндой многие люди настолько сильно привыкли к привязке к пикселям, что любые разговоры на тему улучшения читабельности маленьких шрифтов кажутся просто оправданиями. Лично я считаю, что тут Микрософт просто слажали. Ну не могут мои глазки понять, как можно улучшить читаемость шрифтов маленького размера на ЖК мониторах путём размазывания чётких линий, попадающих в пиксели экрана.
Вторая проблема - недоработки многих контролов. Для примера я бы взял TreeView и RichTextBox.
TreeView сделан без виртуализации. То есть для того, чтобы развернуть группу дерева, фреймворку надо сгенерировать и выполнить разметку (layout) всех дочерних компонентов этой группы. При этом не важно, попадают элементы группы в видимую область дерева или нет. Мне не понятно, как в 2008 году можно выпускать в релиз GUI контрол дерева, в котором раскрытие группы (для примера брал 300 позиций, картинка 24х24 и текст) визуально заметно (задержка до 0.5-0.8 секунд). Это приводит к тому, что разработчику приходится рожать легионы ёжиков. Дерево приходится эмулировать через список (список в WPF работает с виртуализацией). А такая де факто стандартная для качественных GUI операция, как выделение (selection) определённой позиции дерева, требует затрат, которые иначе, как кусанием обоих локтей одновременно, не назовёшь.
RichTextBox - это замена ставшему для многих привычным RichEdit контролу. Только скорость его работы сравнима разве что со скоростью передвижения улитки в небрачный период (для спаривания они передвигаются быстрее). Для примера можно взять сотню параграфов по 512 символов каждый с текстом и небольшими (32х32) картинками. (Впрочем, картинки необязательны, просто с ними эффект будет более удручающим.) Даже при самом простом выравнивании по левому краю (а ведь есть ещё justification/hyphenation) при изменении размеров RichTextBox'а перерисовка будет заметна глазу. (Если кто-то решит повторить этот эксперимент и будет удовлетворён разметкой чистого текста, вставьте картинки.) Видимо, команда WPF поссорилась с командой IE, в результате чего разметка текста писалась с нуля. Просто IE может отобразить гораздо больший объём данных (даже с картинками и выравниванием) и при изменении размеров документа не будет знать никаких проблем.
Конечно, это только часть известных мне проблем, решение которых бывает как простым, так и очень сложным. (Но в любом случае нетривиальным.) В 2008 году при разработке программ на современных технологиях я ожидал по крайней мере высокой скорости работы и набора контролов, которые помогут решать все задачи для разработки современного и удобного GUI. Не спорю, что WPF помог решить большое количество каких-то проблем. Но при этом он добавил такое же количество других. Будем ждать дальнейших улучшений.
Ты не в курсе, он умеет себя рендерить (с прозрачностью) на OpenGL/DirectX окна?просто полупрозрачность там точно есть. Про прозрачность на OpenGL/DirectX не скажу. Но на рсдн есть раздел специально для таких вопросов к разработчику HTMLayout.
А вот Management Studio под SQL 2005 не на нем случайно написана?
а в каких виндовых приложениях можно на эти градиенты посмотреть - чтоб понять насколько это актуально и зачем оно нужно
а в каких виндовых приложениях можно на эти градиенты посмотреть - чтоб понять насколько это актуально и зачем оно нужнонапример, office 2003.
причем речь идет о теме-классике. в не классике еще больше различий скорее всего будет.
а в каких виндовых приложениях можно на эти градиенты посмотреть - чтоб понять насколько это актуально и зачем оно нужноНу, видимо, 2003й офис, последняя студия. Лично мне такой стиль совершенно не нравится, в отличие от стиля офиса XP.
ну а окромя последних версии продуктов от микрософт кто-нить еще такое юзает?
Он же конфигурится вроде через реестр?
этот неконфигурируемый извратраз некоторым получается себя туда добавить, то он конфигурируемый. копайте.
Он же конфигурится вроде через реестр?Обычный диалог конфигурируется, но офис использует свой диалог.
Иными словами, они создали захардкоженный велосипед.
А вот Management Studio под SQL 2005 не на нем случайно написана?нет, это приложение появилось раньше
ну а окромя последних версии продуктов от микрософт кто-нить еще такое юзает?из того, что под рукой (но у меня софт в основном старый стоит, района 2005-го)
есть в:
microsoft vs 2005
microsoft vs 2008
microsoft office
microsoft sql 2005
все .net-ные проги
ie6 - нет
firefox - нет
microsoft vs 2003 - нет
2. По поводу контролов — хороший повод написать свои контролы . Кто это будет оплачивать это отдельный вопрос. Ну а собственно, почему майкрософт должна делать все нахаляву и при это все идеально было?
2. По поводу контролов — хороший повод написать свои контролы . Кто это будет оплачивать это отдельный вопрос. Ну а собственно, почему майкрософт должна делать все нахаляву и при это все идеально было?Ну а собственно вопрос, нафига тогда использовать эту "новую" технологию, если на ней приходится решать уже решённые задачи? (Ты представляешь себе сложность написания юникодного RichTextBox'а?) Я просто не доволен тем, что в GUI библиотеке черепаший текстовый редактор.
Ну а собственно, почему майкрософт должна делать все нахаляву и при это все идеально было?чтобы выжить на рынке. в треде же отзывы девелоперов есть лол.
А вот Management Studio под SQL 2005 не на нем случайно написана?Тоже всегда поражался тормознутойстью этой проги, думал это .NET и там все так JIT-компилится долго. Потом посмотрел зависимости, а там сплошной С++ и ATL, емнип. Конечно, никакого WPF тогда не было, и это даже не WinForms, похоже.
чтобы выжить на рынке. в треде же отзывы девелоперов есть лол.тк где имена конкурентов?
Ты представляешь себе сложность написания юникодного RichTextBox'аа тебе нужна именно вся функциональность RichTextBox-а?
Я просто не доволен тем, что в GUI библиотеке черепаший текстовый редактор.а какие другие есть варианты компонента-редактора именно рич текста? кроме старого варианта richtexbox от микрософта?
ps
имхо, задача редактирования рич текста довольно дорогая, и на данный момент почти не представлена на рынке.
а ты ее хочешь, чтобы она работала для больших объемов быстро, да еще и на халяву.
ззы
видел варианты: html + js, но они тоже вроде все тормозные.
а тебе нужна именно вся функциональность RichTextBox-а?А что там такого особенного по сравнению с WordPad'ом (WIN32 RichEdit)? Ведь тормозит даже обычный документ, разбитый на параграфы, в каждом из которых один текстовый проход.
а какие другие есть варианты компонента-редактора именно рич текста? кроме старого варианта richtexbox от микрософта?Редактор от SWING-а работает достаточно приемлемо. Редактор от QT. Оба ещё и кроссплатформенные. Редактор Delphi (тот же WIN32 RichEdit?).
имхо, задача редактирования рич текста довольно дорогая, и на данный момент почти не представлена на рынке.
Задача как задача, вполне реализуема такими ресурсами, которые есть у микрософта. Тем более, я привёл банальный пример: текст на 0.5мб и сотня маленьких картинок. (Я даже не поставил выравнивание (justify) на параграфы, с которым, впрочем, прекрасно справляются описанные выше компоненты.) В SWING/QT/WIN32 это совсем не тормозит.
тк где имена конкурентов?устаревшие версии Windows тебя наверное устроят более всего.
хотя вопрос глуп до неприличия, конечно.
устаревшие версии Windows тебя наверное устроят более всего.и ты решил ответить также.
хотя вопрос глуп до неприличия, конечно.
Насколько я тебя понял, поскольку MS выпустила не качественную гуи платформу (с этим все согласны то ты утверждаешь, что WPF не выживет на рынке? Хорошо, узнаем через два три года сбудется ли твой прогноз.
разработчик ОС в условиях конкуренции должен приветствовать усилия юзерспейс-разработчиков и всячески им помогать.
о судьбе WPF я ничего не берусь предполагать. =)
Майкрософт вроде же взяло курс на интернетсервис-ориентированную ось, забыл как она называется. Так что при ожидаемом массовом переходе на веб, указанный фреймворк выпадает из приоритетов разработки.
на веб, указанный фреймворк выпадает из приоритетов разработки.Не выпадет, он лежит в основе SilverLight.
Майкрософт вроде же взяло курс на интернетсервис-ориентированную ось, забыл как она называется. Так что при ожидаемом массовом переходе на веб, указанный фреймворк выпадает из приоритетов разработки.под этим "интернетсервис-ориентированную" и этим "веб" ты подразумеваешь системы с интерфейсом, который крутиться в интернет-браузере? а нахуй тогда вообще ось?
а нахуй тогда вообще ось?вот и Stallman об этом думал, да делал emacs...
я утверждаю, что твое "зачем бесплатно делать нормальный фреймворк" — глупое.так микрософт всегда делала ставку на минимальный набор контролов.
и это всегда срабатывало.
т.к. остается место для компаний, который делают хорошие контролы - что позволяет быстро создать коммюнити, как информационное, так и коммерческое - которое продвигает новую технологию.
раньше нормальный richedit входил в этот набор
Тоже всегда поражался тормознутойстью этой проги
Во-во. Я на работе с ее помощью новый комп пробил. Мне очень долго ебали мозг, потом поставили 1 Гб оперативки — типа, это решит все проблемы. Но мне нужен был новый комп, а менять целиковый комп категорически отказывались. А потом я показал, как открывается табличка в Management Studio. Комп поменяли на следующий день.
Оставить комментарий
0000
Из тех что знаю: WinAPI, MFC, ATL, WinForms, QT, GTK+, wxWidgetВ первых трех писать GUI вроде как уже моветон: муторно и неудобно.
WinForms вроде как под С++ не очень.
QT - случайно увидел отрицательный отзыв и офигел (думал, что она и под Win всех порвала).
GTK+ и wxWidget - какие то аналоги QT. Просто названия видел.
Собственно планируется писать несложный GUI с MDI стилем. Что посоветуете?
Из всего перечисленного GUI писал только на WinAPI, но он меня забодал.
QT4 уже собрал, со студией подружил, hello world написал.
Все остальное видел мельком, кроме последних двух.