[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Выбор GUI



Привет!

Кто-нибудь тут занимается разработкой десктопных програм с GUI? На чём
имеет смысл начинать разработку довольно несложного интерфейса?
Желательно библиотеки с поддержкой C++, кроссплатформенность
необязательна, но обязательна возможность работы с OpenGL и поддержка
высоких DPI.

Qt мог бы быть наилучшим выбором, но ситуация с поддержкой LTS-ветки
удручает. Есть довольно критичные баги, которые не исправляются со
времён 4-й версии. Пытаются предоставить свою альтернативу
существующим решениям, из-за чего в коде полно вещей типа
QString::fromStdString qsting.toStdString(). Документация обещает
проблемы с перерисовкой если не использовать существующие виджеты для
OpenGL, а просто создать контекст используя область рисования. На
альтернативные системы надо тащить кучу библиотек.

Из Gtk скоро выкинут всё. Из 4-й версии выкинули даже тулбар. До Qt по
количеству вижетов совершенно не дотягивает, да даже до WinAPI. Из-за
ориентации на пальцетыкальные интерфейсы на десктопах выглядит ужасно.
API не продумывается, постоянно что-то устаревает и заменяется чем-то
новых. Последняя проблема актуальна в том числе и для gtkmm (обёртки
на C++). Большой плюс - упаковка виджетов вместо расстановки по
координатной сетке, но и последняя тоже поддерживается.

wxWidgets. Обёртка над вышеперечисленными, а также есть вариант с
Xlib, но в этом варианте мало виджетов. В стабильной версии нет
поддержки  высоких DPI. Иструменты для визуального проектирования либо
не поддерживают всех возможностей, либо не умеют в создание
XML-описания, либо генерируют некорректный код. Если собран с Gtk 3,
то выглядит так же паршиво. Опять же свои реализации вместо некоторых
стандартных (wxString, например).

Со следующими не работал вообще, бегло посмотрел сайт.

Fox. Нет поддержки  высоких DPI. Свои реализации стандартных вещей. Не
понял пока как реализована расстановка виджетов в окне: упаковываются
как в Gtk  или по координатной сетке.

fltk. Нет поддержки  высоких DPI в стабильной версии. Древний C++. Нет
упаковки, размеры виджетов нужно задавать явно.

Elementary. Непонятно пока насчёт высокого DPI, OpenGL и упаковки.
Есть опасность, что может быть ориентирован на пальцетыкальные
интерфейсы (в истории успеха холодильники и т.п.).

Есть ли жизнь с десктопным GUI в 2021 году? Можно ли выбрать хоть
что-то, что не сломается через два года?

-- 
Celestia real-time space simulator:
 * https://celestia.space
 * https://github.com/CelestiaProject

Forum:
 * https://celestia.space/forum/

Reply to: