Компактная бесплатная C++ crossplatform GUI
От: dosik Россия www.dosik.ru
Дата: 05.01.18 08:55
Оценка:
Знаю, что тема неоднократно обсуждалась, но все же в этой ветке хочется сделать уклон именно на КОМПАКТНОСТЬ и ПОЛНУЮ БЕСПЛАТНОСТЬ. MacOS — обязательно, без Linux можно попробовать прожить.
Да и чем еще развлечь себя на каникулах, давайте по дискутируем!!!

Google сразу-же привел меня к этой статейке.
Мои размышления:
— Chromium Embedded Framework — круто конечно, все видели Battle.net, но таскать с собой 92Мб (из коробки) libcef.dll и еще пару .bin файлов для проектов аля крестики-нолики неохото совсем.
— любимый тут многими sciter в список Wiki не попал, и думаю, что по понятным причинам. В принципе, если хочется интерфейс в стиле HTML (CEF), и готов таскать с собой один файл в 2 МБ, то вполне себе, если бы не проприетарность.
— QT тоже не полностью FREE, да и это уже превратилось в философию типа boost — громоздковато, хотя из плюсов тот-же QML.
— любимая Страуструпом (из последней его книги) FLTK как-то уж слишком мрачновата.
— JUCE слишком узконаправлена.
— и вот вроде как wxWidgets — то, что я ищу, так как судя по прочитанному мной на форуме — это "фасад" к стандартным ОС API.
— хочу еще посмотреть GTK+, но боюсь что там многовато зависимостей.

Еще раз, нужна легковесная библиотека для небольших приложений, которая в идеале становиться частью исполняемого файла.

А вообще начинаю склоняться к выводу, что будущее кроссплатформенных GUI — HTTP+REST/HTML+CSS+AJAX+JavaScript
Re: Компактная бесплатная C++ crossplatform GUI
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.01.18 09:42
Оценка: +2
FLTK, wxWidgets
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: Компактная бесплатная C++ crossplatform GUI
От: so5team https://stiffstream.com
Дата: 05.01.18 11:17
Оценка: +2
Здравствуйте, dosik, Вы писали:

D>Знаю, что тема неоднократно обсуждалась, но все же в этой ветке хочется сделать уклон именно на КОМПАКТНОСТЬ и ПОЛНУЮ БЕСПЛАТНОСТЬ. MacOS — обязательно, без Linux можно попробовать прожить.


Можно еще посмотреть на Nana (поддержка MacOS там заявлена как экспериментальная, но может для простых нужд и сойдет) и на FOX Toolkit (сама библиотека старая, но до сих пор развивается и въехать в нее не сложно).
Re: Компактная бесплатная C++ crossplatform GUI
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 05.01.18 12:59
Оценка: 3 (1) +1
Здравствуйте, dosik, Вы писали:

D>- QT тоже не полностью FREE, да и это уже превратилось в философию типа boost — громоздковато, хотя из плюсов тот-же QML.


Qt 4.8.7 полностью под LGPL, а компилировать её статическую версию себе дороже. Я пробовал, у меня получилось, но это не нужное и даже вредное занятие, так как надо учитывать то, что можно было бы не учитывать при динамической линковке. Что касается громоздковато, то можно взять для примера SDL. Тот же Qt имеет свою библиотеку виджетов, но к нему как и к SDL и другим можно подключать сторонние GUI. Здесь ведь главное, чтобы была возможность создать графическое окно для кроссплатформенного приложения.

Для пример, возьмём OpenSceneGraph.

openscenegraph
Библиотека osgViewer может так же быть легко встроена с другими оконными тулкитам, такими как Qt, GLUT, FLTK, SDL, WxWidget, Cocoa и MFC.


Точно так же работают игровые движки, геометрические ядра и тому подобное, причём в них есть свои GUI. Есть и обратная ситуация, когда можно запихнуть те же Qt виджеты в трёхмерное пространство, или комбинированный вариант. Даже просто смотря на совместимость различных GUI с оконными тулкитам вроде Qt, GLUT, SDL и тому подобных, я вижу гораздо больше вариантов для создания пользовательского интерфейса.

Что касается макоса, то говорят он более проблемный в этом плане, потому как раз без него прожить проще, чем без гну/линукса. Так что вряд ли стоит изобретать велосипед хотя бы по отношению к кроссплатформенным оконным тулкитам. А вот дальше уже использовать их возможности по GUI или встроить в них нечто стороннее руководствуясь при выборе того и другого той же компактностью.
Re[2]: Компактная бесплатная C++ crossplatform GUI
От: dosik Россия www.dosik.ru
Дата: 05.01.18 13:58
Оценка:
Здравствуйте, velkin, Вы писали:

V>Что касается макоса, то говорят он более проблемный в этом плане, потому как раз без него прожить проще, чем без гну/линукса.


Разработчикам быть может. Но у меня ориентация на конечного пользователя (обывателя). Как много у Вы знаете людей (разработчики не считаются ) с ноутбуками, на которые установлен Linux?
Re: Компактная бесплатная C++ crossplatform GUI
От: reversecode google
Дата: 05.01.18 14:01
Оценка: -4 :)
давно известный ответ на такие вопросы — сделай сам
в чем проблема взять и набросать свою гуи ?
Re: Компактная бесплатная C++ crossplatform GUI
От: loginx  
Дата: 05.01.18 14:31
Оценка:
Здравствуйте, dosik, Вы писали:

D>А вообще начинаю склоняться к выводу, что будущее кроссплатформенных GUI — HTTP+REST/HTML+CSS+AJAX+JavaScript


да, сейчас html5+css3 да еще с fetch и доступу к локальным базам и файлам + 3D
слишком могуч, все "конкуренты" какие-то букашки с таракашками.

И он сейчас очень быстр! Real time FFT — без проблем. 10 тыс. DOM объектов — без проблем.
Re: Компактная бесплатная C++ crossplatform GUI
От: kov_serg Россия  
Дата: 05.01.18 14:59
Оценка: +2
Здравствуйте, dosik, Вы писали:

D>Знаю, что тема неоднократно обсуждалась, но все же в этой ветке хочется сделать уклон именно на КОМПАКТНОСТЬ и ПОЛНУЮ БЕСПЛАТНОСТЬ. MacOS — обязательно, без Linux можно попробовать прожить.

D>Да и чем еще развлечь себя на каникулах, давайте по дискутируем!!!
D>Еще раз, нужна легковесная библиотека для небольших приложений, которая в идеале становиться частью исполняемого файла.

www.ultimatepp.org
Re[3]: Компактная бесплатная C++ crossplatform GUI
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 05.01.18 15:42
Оценка: +1
Здравствуйте, dosik, Вы писали:

D>Разработчикам быть может. Но у меня ориентация на конечного пользователя (обывателя).


Я к тому, что если уж на макоси заработает, особенно с кроссплатформенными оконными тулкитами, то гну/линукс это вообще не проблема. В овервотч на макос просто тупо забили. Хотя PS4 это FreeBSD 9.0 и он там есть, как и на винде с иксбокс ваном. Игроков уже говорят 35 млн. и чтобы вырасти ещё больше могли бы сделать версию для макоса. А те кроссплатформенные игры которые поновее, если поддерживают макос, то у них и гну/линукс доступен. Это косвенно свидетельствует о том, что программировать можно на чём угодно, а вот релиз лучше выпускать сначала на винде, а потом если останутся силы на всём остальном.

Если прикинуть очень грубо, то SDL 2.0.x примерно 1-1.2Мб на x86 и x64 версии, плюс нужен какой-нибудь хороший GUI. Релизные мингвшные библиотеки Qt 4.8.7 под винду не более 3МБ на Core и 10Мб на GUI, то есть 13Мб с динамической линковкой, со статической понятное дело меньше. Вот я смотрю тут писал Как собрать Qt 4.8 статически?
Автор:
Дата: 18.12.11

Если всё сделано правильно не слишком нагруженный скомпилированный гуишный пример будет занимать мегабайт семь и больше. Ни от библиотек Qt, ни от mingw'шных (на вроде, mingwm10.dll и других), он зависеть не будет. Можно поставить его на чистый компьютер, или стереть из системных переменной Path пути к библиотекам, или просто запустить консоль (cmd.exe) и там набрать set path= после чего динамически слинкованные файлы запущенные в этом же сеансе консоли сразу затребуют недостающее, а статические будут запускаться без вопросов.

Уже не поручусь за то, что было много лет назад, но значит 7Мб на минимуме, что тоже не особо экономно и не оправдывает использование статической сборки, тем более учитывая лицензию LGPL. Есть примеры, как подключить OpenCASCADE к тем же вышеперечисленным оконным тулкитам. Графические и игровые движки тоже много что умеют.

А в целом ничего не даётся бесплатно, где-то гуишная библиотека всё равно находится, в папке с операционкой или поставляемая в комплекте с программой. Тот же Qt отрисовывает всё сам, то есть стиль винды или макоса это просто имитация средствами самого Qt. Я вот сейчас посмотрел, различные примеры к Qt занимают 50кб, некоторые больше и даже меньше, просто к ним надо библиотеки, вроде ядра, гуи, баз данных, сетей и так далее.

Можно ещё в компиляторе включать соответствующие оптимизации. Хотя смысла в этом особого нет, те же релизные библиотеки Qt при всех своих размерах просто микроскопические, по сравнению со многими программами и пропускными каналами интернета. Так что здесь если только чисто академический интерес, а так лучше выбирать по функционалу.
Re[4]: Компактная бесплатная C++ crossplatform GUI
От: dosik Россия www.dosik.ru
Дата: 05.01.18 15:51
Оценка:
Спасибо за развернутые ответы. Буду переваривать.
Re: Компактная бесплатная C++ crossplatform GUI
От: ioni Россия  
Дата: 05.01.18 16:08
Оценка:
Здравствуйте, dosik, Вы писали:

еще в догонку cinder
https://libcinder.org/about
Re: Компактная бесплатная C++ crossplatform GUI
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.01.18 19:49
Оценка:
Здравствуйте, dosik, Вы писали:

D>- и вот вроде как wxWidgets — то, что я ищу, так как судя по прочитанному мной на форуме — это "фасад" к стандартным ОС API.


Это не так уж плохо, поскольку обеспечивает настоящий нативный лук анд фил, а не вечно кривоватую его эмуляцию. Но ходят слухи, что wxWidgets очень глюкав (сам я не пробовал).
Re[2]: Компактная бесплатная C++ crossplatform GUI
От: loginx  
Дата: 07.01.18 14:48
Оценка: +2
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, dosik, Вы писали:


D>>- и вот вроде как wxWidgets — то, что я ищу, так как судя по прочитанному мной на форуме — это "фасад" к стандартным ОС API.


Pzz>Это не так уж плохо, поскольку обеспечивает настоящий нативный лук анд фил, а не вечно кривоватую его эмуляцию. Но ходят слухи, что wxWidgets очень глюкав (сам я не пробовал).


а зачем он нужен это нэйтивный лук и фил?!
Никогда ни один юзер у меня не просил эту лабуду!
юзеры просят чтобы было просто и понятно и изящно-красиво максимум.
А эту лабуду юзера даже не подозревают о ней. Эта сущность существует исключительно в мозгах некоторых програмистов.
UX дизайнеры должны руководствоваться гайд лайнами гугла и эпла по ГУИ, а там никакой фигни лук-ифил никогда не сущесвовало.

Люди пишущие про этот лук-и-фил вообще все перпутали п перевернули с ног на голову.

Есть стратегические установки как делать ГУИ — от гугла и эпла.
Есть их текущие реализации... которые меняются от версии к версии ОС, но все в русле установок "партии" (революции не исключены
переход от сквеморфизма к плоскому и материальному ГУИ)
Так вот — молиться надо на стратегические установки. а не текущую реализацию (лук-и-фил)
Врубаетесь коллеги?
Отредактировано 07.01.2018 14:53 loginx . Предыдущая версия .
Re: (Оффтоп)
От: SaZ  
Дата: 08.01.18 08:08
Оценка: +1
Здравствуйте, dosik, Вы писали:

D>...

D>А вообще начинаю склоняться к выводу, что будущее кроссплатформенных GUI — HTTP+REST/HTML+CSS+AJAX+JavaScript

Я примерно это же слышал лет 13 назад, когда техникум заканчивал.

А по сабжу — я адепт Qt. Написал для себя шаблончик проекта на cmake, который сразу подхватывает Qt+boost и умеет с помощью windeployqt и пары костылей делать standalone сборку. Может когда-нибудь выложу на гитхаб.
Re[2]: (Оффтоп)
От: dosik Россия www.dosik.ru
Дата: 08.01.18 09:14
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Я примерно это же слышал лет 13 назад, когда техникум заканчивал.


Тогда только зарождались WebSocket, AJAX, не говоря уже про другие приятности типа jQuery, Angular, React.

SaZ>Qt+boost

А я сторонник минимализма, быть может в силу того, что ни когда не участвовал в очень крупных проектах, и по этому старюсь избегать любых крупных библиотек.
Re: Компактная бесплатная C++ crossplatform GUI
От: ST1 Россия  
Дата: 08.01.18 10:08
Оценка:
Здравствуйте, dosik, Вы писали:

Из числа web-based на слуху Electron и Sciter
Отредактировано 08.01.2018 10:09 ST1 . Предыдущая версия . Еще …
Отредактировано 08.01.2018 10:08 ST1 . Предыдущая версия .
Re[2]: Компактная бесплатная C++ crossplatform GUI
От: Skorodum Россия  
Дата: 08.01.18 14:02
Оценка:
Здравствуйте, velkin, Вы писали:

V>Qt 4.8.7 полностью под LGPL

В более новых версиях что-то изменилось в этом плане?
Re[2]: Компактная бесплатная C++ crossplatform GUI
От: dosik Россия www.dosik.ru
Дата: 08.01.18 22:21
Оценка:
Здравствуйте, ST1, Вы писали:

ST1>Electron

Очень тяжеловато
ST1>Sciter
Проприетарно
Re[2]: Компактная бесплатная C++ crossplatform GUI
От: Ops Россия  
Дата: 09.01.18 03:24
Оценка: 15 (1)
Здравствуйте, reversecode, Вы писали:

R>давно известный ответ на такие вопросы — сделай сам


Это только в велосипедной промышленности.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: (Оффтоп)
От: SaZ  
Дата: 09.01.18 07:47
Оценка: +1
Здравствуйте, dosik, Вы писали:

D>Тогда только зарождались WebSocket, AJAX, не говоря уже про другие приятности типа jQuery, Angular, React.

Но воз и ныне там (в плане гуёв для десктопа).

D>А я сторонник минимализма, быть может в силу того, что ни когда не участвовал в очень крупных проектах, и по этому старюсь избегать любых крупных библиотек.

STL — уже очень крупная библиотека. Её вы тоже избегаете? Странный аргумент. Что Qt загоняет в определённые рамки — ещё могу понять, но вот буст это же в основном header-only библиотека. При желании оттуда вообще очень легко достаётся нужная функциональность, если не хотите таскать весь буст с собой.

Вы можете чётко сформулировать, что значит для вас "крупная библиотека"?
Отредактировано 09.01.2018 7:48 SaZ . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.