Интересные обсуждения
темы заинтересовавшие velkin
Альтернативы Qt для кроссплатформенной разработки
24.01.2022
|
Shmj
|
QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
24.01.2022 24 комментария |
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
Если бросят авторы, то подхватит KDE. Кажется, что это достаточно сильные гарантии.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
Будешь смеяться, но Unity. Вполне подходит даже не только для игр или графики, но и для приложений с обычным GUI. Все платформы, включая Web из коробки. Ну, единственный минус — дистрибутивы где-то от 40 мегабайт начинаются, даже HelloWorld.
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
OpenGL уже не совсем кросс-платформенный. Apple объявил его "deprecated".
Да и Windows не все так гладко с его поддержкой, тот же Qt 5 написанный поверх OpenGL ES на Windows использовал Angle,
для трансляции в OpenGL ES в DirectX.
Плюс нужен API для работы с мышкой, клавиатурой, окнами, звуком, сетью, файлами.
И т.д. и т.п.
Да и сама проблема что поддержки не будет мне кажется надуманной.
Вот сделали Qt LTS только за деньги, тут же KDE проект сделал форк и
теперь предоставляет всем желающим LTS бесплатно.
Z>OpenGL уже не совсем кросс-платформенный. Apple объявил его "deprecated".
Z>Да и Windows не все так гладко с его поддержкой, тот же Qt 5 написанный поверх OpenGL ES на Windows использовал Angle,
Z>для трансляции в OpenGL ES в DirectX.
Не совсем так. По умолчанию Qt 5 всё же собирается под OpenGL ES. Под Angle его придется собирать специально, указывая соответствующие флаги. С самим OpenGL под Windows никах проблем нет.
Z>Вот сделали Qt LTS только за деньги, тут же KDE проект сделал форк и
Z>теперь предоставляет всем желающим LTS бесплатно.
KDE будет саппортить под линукс, как я понимаю. Винда, Мак их не особо волнует.
Но в целом согласен на наш век еще хватит Qt. Уж слишком много на него заточено.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)?
Qt5 это ещё и Android, причём сразу простой перекомпиляцией, без QML. На C++ ещё есть GTK, wxWidgets, Ultimate++.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный.
Qt тоже может использовать OpenGL как один из контекстов рисования. Ещё учитывай, что Qt не требует процентного отчисления денег авторам и правообладателям. Твоя программа это только твоя программа, а не заплатите создателям движка проценты с выручки.
S>Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
По сути Qt это как раз наименее рисковый вариант для стороннего разработчика. Приложение на его основе всё равно скомпилируется. Более того, можно скомпилировать саму библиотеку самостоятельно. Возьми тот же Qt4, он до сих пор прекрасно работает.
На OpenGL тоже есть различные графические библиотеки, но набор виджетов у них минимальный. Для игры где всё прорисуют художники может и пойдёт, а для обычного десктопного приложения нет смысла. Ну а какие-нибудь продвинутые игровые движки сильно платные. Есть правда и бесплатные.
V>Qt5 это ещё и Android, причём сразу простой перекомпиляцией, без QML.
И iOS.
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
https://www.copperspice.com/
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)?
https://www.ultimatepp.org/
https://www.gtk.org/ http://www.gtkmm.org/en/
https://sciter.com/
http://wxwidgets.org/
S> Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Просто прекратите общаться с тормозами
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
С opengl обычно бывают глюки, может сейчас меньше, но всё же.
https://openjfx.io/ java но очень добротно (раньше глючило на отдельных машинах шо пипец).
Ну и до кучи
http://cegui.org.uk
https://github.com/AshampooSystems/boden
https://github.com/cnjinhao/nana
https://github.com/cycfi/elements
https://github.com/gammasoft71/xtd
https://github.com/mikke89/RmlUi
https://github.com/mitsuba-renderer/nanogui
https://github.com/ocornut/imgui
https://github.com/yue/yue
https://www.fltk.org
и это еще не полный список
S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Не такие уж они и тормозные. Тяжелые, ну так и Qt проекты получаются под сотню Мб.
М>Не такие уж они и тормозные. Тяжелые, ну так и Qt проекты получаются под сотню Мб.
Если проекты и получаются под сотню мегабайт, то явно не из-за Qt.
Qt 5.9.9 x64 GNU/Linux
Что касается тормозных технологий у меня на i4790K с 32Gb мало что тормозит. А на старом нетбуке тоже самое может и вовсе нормально не запуститься. Та же Android Studio на последнем сразу фейл. Браузеры кое как работают. Тоже самое и на старом смартфоне десятилетней давности. Qt5 ещё работает, а есть приложения, которые лучше никогда не запускать.
V>Если проекты и получаются под сотню мегабайт, то явно не из-за Qt.
V>Qt 5.9.9 x64 GNU/Linux
V>
А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.
V>Что касается тормозных технологий у меня на i4790K с 32Gb мало что тормозит. А на старом нетбуке тоже самое может и вовсе нормально не запуститься. Та же Android Studio на последнем сразу фейл. Браузеры кое как работают. Тоже самое и на старом смартфоне десятилетней давности. Qt5 ещё работает, а есть приложения, которые лучше никогда не запускать.
У меня и электронный vs code нормально работает на слабеньком планшете на intel atom. Ожидать скорости от IDE и полноценных браузеров (не просто движков) на древнем железе как-то странно, они тяжелые сами по себе, независимо от того, что там используется для рендеринга UI элементов.
М>А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.
Консольное Hello world приложение занимает 35 Мб. Там правда, только Qt5Core.dll и translations. Но из этого 24Мб занимает vc_redist.x64.exe
У>Консольное Hello world приложение занимает 35 Мб. Там правда, только Qt5Core.dll и translations. Но из этого 24Мб занимает vc_redist.x64.exe
Реальных зависимостей там чуть больше 1-го мегабайта c MSVC 2019.
Для CMake:
М>А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов.
Я не рекомендую использовать QML, так выше и написал "без QML". Причём дело здесь не в занимаемом объёме.
Приложение untitled в Qt5, практически Hello World.
Разархивированная виндовая версия untitled.win.7z
Общий объём 19.5 МиБ. А навыдумывать можно много всего. Некоторые, кстати, и этим объёмом недовольны. Ну, статическая компиляция им в помощь. Или пусть уходят на что-то более легковесное.
V>Я не рекомендую использовать QML, так выше и написал "без QML". Причём дело здесь не в занимаемом объёме.
Столь категорично может и не следовало бы утверждать, но просто инфраструктура Widget-ов в Qt достаточно развита,
что (IMHO) применение QML может рассматриваться как достаточно редкий кейс.
AG>что (IMHO) применение QML может рассматриваться как достаточно редкий кейс.
QML это как раз то, что используют везде на нём намного проще создавать UI. Как раз таки использование плюсового кода это не каноничный путь.
М>А сколько занимает бандл после deploy_qt, смотрели?
Да. У меня инсталятор виндового приложения на винде занимает 33 метра без всякой особой доработки напильником со стандартной Qt.
М>У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.
+1. Тоже самое приложение которое на виде 33 метра на маке почему-то за сотню. Пока не в приоритете, но надо бы разобраться и допилить.
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Собственно, HTMLayout. Никаких тормозов не добавляет, наоборот — побыстрее нативных компонентов будет.
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
Срок жизни твоего проекта какой, Шимжа? Явно не 10 лет будет. QT ещё нас всех переживёт если даже такой шлак как gtk и wxWidgets поддерживается до сих пор, то QT подавно будет поддерживать как минимум по инерции лет 20. Ты с горизонтом планирования разберись. Очевидно, что если твой проект проживёт 3-5 лет, то ты можешь потом и реинвестировать деньги от проекта в переход на новую платформу или тупо запилить весь UI нативно, а если нет, то чего думать про это?
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)?
Буду альтернативным, Flutter.
S>Такая идея возникла.
Куча, только все они как раз таки теряют поддержку со стороны разработчика в течении 3-5 лет, а QT живёт. Даже амуде на QML сделали своё ПО для десктопа.
S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Всем подходит, в том числе компаниям мирового уровня. Я вот недавно столкнулся с прибором медицинским. В нём крохотный ARM процессор от NXP, линукс. И в нём электрон и весь интерфейс на электроне на крохотном экранчике. Не такой уж тривиальный интерфейс между прочим. И работает без всяких тормозов. У Элона Маска в космическом корабле интерфейс на Электроне.
А тебе не подходит? Кажется ты слишком горд.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
От создателей Qt: https://sixtyfps.io/
Хотя если тебе Qt кажется ненадёжным, то вряд ли тебе вообще что-либо подойдёт.
Кстати обрати внимание, что Qt пишется именно так. QT это Quick Time.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
https://github.com/andlabs/libui
не благодари.
А можно нескромный вопрос, зачем?
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
Dear ImGui популярен в узких кругах.
https://www.youtube.com/watch?v=Du--cH01ZWI
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
Он опенсорсный. Можешь сам сделать форк, и его поддерживать. Но очень маловероятно, что прекратят поддержку, слишком уж много продуктов от него зависит.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
Ну, говорят, GTK тоже умеет в кросс-платформу...
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
OpenGL — это довольно низкоуровневая штука. Кто будет виджеты-то рисовать?
S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
А не надо валить всё в одну кучу — Sciter, в отличие от CEF3, не тормозит.