Интересные обсуждения

темы заинтересовавшие velkin

Альтернативы Qt для кроссплатформенной разработки

Shmj Shmj
QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.

Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.

Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?
Nuzhny
Nuzhny Альтернатива QT для кросс-платформы
24.01.2022 06:34
Здравствуйте, Shmj, Вы писали:

S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.


Если бросят авторы, то подхватит KDE. Кажется, что это достаточно сильные гарантии.
Homunculus
Homunculus Альтернатива QT для кросс-платформы
24.01.2022 06:44
Здравствуйте, Shmj, Вы писали:

S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?


Будешь смеяться, но Unity. Вполне подходит даже не только для игр или графики, но и для приложений с обычным GUI. Все платформы, включая Web из коробки. Ну, единственный минус — дистрибутивы где-то от 40 мегабайт начинаются, даже HelloWorld.
Zhendos
Zhendos Альтернатива QT для кросс-платформы
24.01.2022 07:02
Здравствуйте, Shmj, Вы писали:

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 бесплатно.
Videoman
Videoman
25.01.2022 07:28
Здравствуйте, Zhendos, Вы писали:

Z>OpenGL уже не совсем кросс-платформенный. Apple объявил его "deprecated".

Z>Да и Windows не все так гладко с его поддержкой, тот же Qt 5 написанный поверх OpenGL ES на Windows использовал Angle,
Z>для трансляции в OpenGL ES в DirectX.

Не совсем так. По умолчанию Qt 5 всё же собирается под OpenGL ES. Под Angle его придется собирать специально, указывая соответствующие флаги. С самим OpenGL под Windows никах проблем нет.
adb
adb
11.02.2022 05:09
Здравствуйте, Zhendos, Вы писали:

Z>Вот сделали Qt LTS только за деньги, тут же KDE проект сделал форк и

Z>теперь предоставляет всем желающим LTS бесплатно.

KDE будет саппортить под линукс, как я понимаю. Винда, Мак их не особо волнует.
Но в целом согласен на наш век еще хватит Qt. Уж слишком много на него заточено.
velkin
velkin Альтернатива QT для кросс-платформы
24.01.2022 07:21
Здравствуйте, Shmj, Вы писали:

S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)?


Qt5 это ещё и Android, причём сразу простой перекомпиляцией, без QML. На C++ ещё есть GTK, wxWidgets, Ultimate++.

S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный.


Qt тоже может использовать OpenGL как один из контекстов рисования. Ещё учитывай, что Qt не требует процентного отчисления денег авторам и правообладателям. Твоя программа это только твоя программа, а не заплатите создателям движка проценты с выручки.

S>Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.


По сути Qt это как раз наименее рисковый вариант для стороннего разработчика. Приложение на его основе всё равно скомпилируется. Более того, можно скомпилировать саму библиотеку самостоятельно. Возьми тот же Qt4, он до сих пор прекрасно работает.

На OpenGL тоже есть различные графические библиотеки, но набор виджетов у них минимальный. Для игры где всё прорисуют художники может и пойдёт, а для обычного десктопного приложения нет смысла. Ну а какие-нибудь продвинутые игровые движки сильно платные. Есть правда и бесплатные.
Skorodum
Skorodum
28.01.2022 09:36
Здравствуйте, velkin, Вы писали:

V>Qt5 это ещё и Android, причём сразу простой перекомпиляцией, без QML.

И iOS.
kov_serg
kov_serg Альтернатива QT для кросс-платформы
24.01.2022 07:57
Здравствуйте, Shmj, Вы писали:

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
и это еще не полный список
Михaил
Михaил Альтернатива QT для кросс-платформы
24.01.2022 07:57
Здравствуйте, Shmj, Вы писали:

S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.


Не такие уж они и тормозные. Тяжелые, ну так и Qt проекты получаются под сотню Мб.
velkin
velkin
25.01.2022 01:39
Здравствуйте, Михaил, Вы писали:

М>Не такие уж они и тормозные. Тяжелые, ну так и Qt проекты получаются под сотню Мб.


Если проекты и получаются под сотню мегабайт, то явно не из-за Qt.

Qt 5.9.9 x64 GNU/Linux
libQt5Core.so    5.3 МиБ
libQt5Gui.so     5.7 МиБ
libQt5Widgets.so 6.2 МиБ
libQt5Network.so 1.6 МиБ
libQt5Sql.so     0.3 МиБ


Что касается тормозных технологий у меня на i4790K с 32Gb мало что тормозит. А на старом нетбуке тоже самое может и вовсе нормально не запуститься. Та же Android Studio на последнем сразу фейл. Браузеры кое как работают. Тоже самое и на старом смартфоне десятилетней давности. Qt5 ещё работает, а есть приложения, которые лучше никогда не запускать.
Михaил
Михaил
25.01.2022 08:11
Здравствуйте, velkin, Вы писали:


V>Если проекты и получаются под сотню мегабайт, то явно не из-за Qt.


V>Qt 5.9.9 x64 GNU/Linux

V>
V>libQt5Core.so    5.3 МиБ
V>libQt5Gui.so     5.7 МиБ
V>libQt5Widgets.so 6.2 МиБ
V>libQt5Network.so 1.6 МиБ
V>libQt5Sql.so     0.3 МиБ
V>


А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.

V>Что касается тормозных технологий у меня на i4790K с 32Gb мало что тормозит. А на старом нетбуке тоже самое может и вовсе нормально не запуститься. Та же Android Studio на последнем сразу фейл. Браузеры кое как работают. Тоже самое и на старом смартфоне десятилетней давности. Qt5 ещё работает, а есть приложения, которые лучше никогда не запускать.


У меня и электронный vs code нормально работает на слабеньком планшете на intel atom. Ожидать скорости от IDE и полноценных браузеров (не просто движков) на древнем железе как-то странно, они тяжелые сами по себе, независимо от того, что там используется для рендеринга UI элементов.
удусекшл
удусекшл
25.01.2022 08:25
Здравствуйте, Михaил, Вы писали:

М>А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.


Консольное Hello world приложение занимает 35 Мб. Там правда, только Qt5Core.dll и translations. Но из этого 24Мб занимает vc_redist.x64.exe
Skorodum
Skorodum
28.01.2022 09:49
Здравствуйте, удусекшл, Вы писали:

У>Консольное Hello world приложение занимает 35 Мб. Там правда, только Qt5Core.dll и translations. Но из этого 24Мб занимает vc_redist.x64.exe

Реальных зависимостей там чуть больше 1-го мегабайта c MSVC 2019.

Для CMake:

...
# аргумент для windeployqt
list(APPEND ARGS "--no-compiler-runtime")
...
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
include(InstallRequiredSystemLibraries)
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ./bin)
...

velkin
velkin
25.01.2022 11:02
Здравствуйте, Михaил, Вы писали:

М>А сколько занимает бандл после deploy_qt, смотрели? У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов.


Я не рекомендую использовать QML, так выше и написал "без QML". Причём дело здесь не в занимаемом объёме.

Приложение untitled в Qt5, практически Hello World.
untitled.src.7z 1.54 КБ исходник
untitled.apk    6.69 МБ андроид
untitled.win.7z 5.71 МБ windows

Разархивированная виндовая версия untitled.win.7z
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
libgcc_s_dw2-1.dll
libstdc++-6.dll
untitled.exe

Общий объём 19.5 МиБ. А навыдумывать можно много всего. Некоторые, кстати, и этим объёмом недовольны. Ну, статическая компиляция им в помощь. Или пусть уходят на что-то более легковесное.
AlexGin
AlexGin
01.02.2022 08:24
Здравствуйте, уважаемый velkin, Вы писали:

V>Я не рекомендую использовать QML, так выше и написал "без QML". Причём дело здесь не в занимаемом объёме.


Столь категорично может и не следовало бы утверждать, но просто инфраструктура Widget-ов в Qt достаточно развита,
что (IMHO) применение QML может рассматриваться как достаточно редкий кейс.
Kernan
Kernan
02.02.2022 10:42
Здравствуйте, AlexGin, Вы писали:

AG>что (IMHO) применение QML может рассматриваться как достаточно редкий кейс.

QML это как раз то, что используют везде на нём намного проще создавать UI. Как раз таки использование плюсового кода это не каноничный путь.
Skorodum
Skorodum
28.01.2022 09:41
Здравствуйте, Михaил, Вы писали:

М>А сколько занимает бандл после deploy_qt, смотрели?

Да. У меня инсталятор виндового приложения на винде занимает 33 метра без всякой особой доработки напильником со стандартной Qt.

М>У меня на маке, Qtшная qml .app переваливает за 50Мб, причем без доп ресурсов. Может там и можно вручную вычистить ненужные dll'и. Но обычно вот так, качаешь Qt приложение — бандл там обычно по весу на уровне с электроном, 100-150 минимум.

+1. Тоже самое приложение которое на виде 33 метра на маке почему-то за сотню. Пока не в приоритете, но надо бы разобраться и допилить.
Don Reba
Don Reba Альтернатива QT для кросс-платформы
25.01.2022 06:21
Здравствуйте, Shmj, Вы писали:

S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.


S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.


Собственно, HTMLayout. Никаких тормозов не добавляет, наоборот — побыстрее нативных компонентов будет.
Kernan
Kernan Альтернатива QT для кросс-платформы
25.01.2022 09:20
Здравствуйте, Shmj, Вы писали:

S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.

Срок жизни твоего проекта какой, Шимжа? Явно не 10 лет будет. QT ещё нас всех переживёт если даже такой шлак как gtk и wxWidgets поддерживается до сих пор, то QT подавно будет поддерживать как минимум по инерции лет 20. Ты с горизонтом планирования разберись. Очевидно, что если твой проект проживёт 3-5 лет, то ты можешь потом и реинвестировать деньги от проекта в переход на новую платформу или тупо запилить весь UI нативно, а если нет, то чего думать про это?
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)?
Буду альтернативным, Flutter.
S>Такая идея возникла.
Куча, только все они как раз таки теряют поддержку со стороны разработчика в течении 3-5 лет, а QT живёт. Даже амуде на QML сделали своё ПО для десктопа.
vsb
vsb Альтернатива QT для кросс-платформы
25.01.2022 11:13
Здравствуйте, Shmj, Вы писали:

S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.


Всем подходит, в том числе компаниям мирового уровня. Я вот недавно столкнулся с прибором медицинским. В нём крохотный ARM процессор от NXP, линукс. И в нём электрон и весь интерфейс на электроне на крохотном экранчике. Не такой уж тривиальный интерфейс между прочим. И работает без всяких тормозов. У Элона Маска в космическом корабле интерфейс на Электроне.

А тебе не подходит? Кажется ты слишком горд.

S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?


От создателей Qt: https://sixtyfps.io/

Хотя если тебе Qt кажется ненадёжным, то вряд ли тебе вообще что-либо подойдёт.

Кстати обрати внимание, что Qt пишется именно так. QT это Quick Time.
vaa
vaa Альтернатива QT для кросс-платформы
26.01.2022 02:55
Здравствуйте, Shmj, Вы писали:


S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.

https://github.com/andlabs/libui
не благодари.
А можно нескромный вопрос, зачем?
Максим
Максим Альтернатива QT для кросс-платформы
26.01.2022 08:39
S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.
S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.
S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?

Dear ImGui популярен в узких кругах.

https://www.youtube.com/watch?v=Du--cH01ZWI

https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v167/v167-misc.png
Pzz
Pzz Альтернатива QT для кросс-платформы
01.02.2022 08:51
Здравствуйте, Shmj, Вы писали:

S>QT — это мир в себе, притом не открытый. Продукт вроде и не плохой, но риск что прекратят поддержку присутствует.


Он опенсорсный. Можешь сам сделать форк, и его поддерживать. Но очень маловероятно, что прекратят поддержку, слишком уж много продуктов от него зависит.

S>Какие есть альтернативы для создания GUI для кросс-платформы (Win, MacOS, Linux)? Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.


Ну, говорят, GTK тоже умеет в кросс-платформу...

S>Такая идея возникла. Вот тот же OpenGL вроде вполне себе кросс-платформенный. Может есть некая библиотека для создания GUI на его основе?


OpenGL — это довольно низкоуровневая штука. Кто будет виджеты-то рисовать?
Shtole
Shtole Альтернатива QT для кросс-платформы
02.02.2022 05:24
Здравствуйте, Shmj, Вы писали:

S>Electron и прочее на основе HTML-Layout — не подходит из-за тормозов.


А не надо валить всё в одну кучу — Sciter, в отличие от CEF3, не тормозит.