@Mihail_Tropin
C++ и Python = my love

GUI для C++. Как можно?

Hi!
Я хочу сделать простую программу на C++ с GUI, но не знаю. Слышал, что можно на CEF(но нет dosc), на MFC(тоже мало docs). Где можно найти что-то про CEF? Или что лучше выбрать?(сразу - никак Qt)
  • Вопрос задан
  • 413 просмотров
Решения вопроса 1
cyber_roach
@cyber_roach
UX дизайнер INEDIapps
Под какую платформу?
Это собственно главный вопрос. Выбор языка сегодня вторичен.
Кроссплатформенность сегодня это миф, так или иначе вы будете либо идти на компромиссы (часто жестко), или мучатся с каждой ОС по отдельности по факту используя пару десятков общих классов которые вам и в обычном (не кроссплатформенном режиме) никто не мешает собрать под все платформы в отдельный ресурс с той же скоростью.
Выбор платформы
* Если windows ничего не мешает использовать UWP / WPF
* MFC -вы серьезно хотите писать ПО на библиотеках 92го года? да они поддерживаются, но новое что-то писать на этом разве что ради фана, либо что-то специфичное под старые win системы.
* CEF - не сталкивался, но думаю мало что хорошего в идее использовать браузерный GUI и плюсы. (если не для браузера пишите)
* QT, сложный вопрос, есть его ярые поклонники не признающие ничего кроме, но я к нему нейтрален, считаю его устаревшим, хотя для встравиваемых систем и под линукс - да, т.к. практически нет альтернатив часто. Под эти платформы я бы выбрал qt только потому что на нее много информации в интернетах и сообщество имеется.
* под мобильные платформы... все довольно сложно, решений вроде как есть, но я бы сегодня использовал для GUI что-то другое(Например Flutter), а c++ для отдельных модулей ибо - замучаетесь отлаживать.
* Если GUI хочется сложный и необычный/игровой да еще и кроссплатформенно Я бы использовал необычное сочетание UnrealEngine + NoesisGUI, где Unreal решит все проблемы с платформами и производительностью Noesis с разметкой UI. Но придется пожертвовать почти всеми системными функциями на каждый чих делая кастомное решение.

Важные моменты
- Графическая библиотека должна использовать железо на максимум.
т.е. без апаратного ускорения и отрисовкой видеокартой можно выбрасывать все ваши красивости на помойку.
Наверное часто замечали что над GUI постарались, но забыли про производительность.
Если под win попробуйте UWP, он супершустр, если честно быстрее и качественнее него в отрисовке GUI ничего не встречал. Съедает любую сложность GUI при верном подходе для любого устройства ввода-вывода (клавитура/мышь, тач на 20 касаний, сенсорные перья, VR…) Какой-нибудь QT возможности даже и не снятся, хотя вторая много старше.
К сожалению платформа не популярна. Есть небольшая, но вероятность, что сдохнет, т.к. windows маркет не развился. Хотя недавно добавили возможность писать ПО и для обычного десктопа минуя распространение через магазин, но пока все сырое. ну и так же MS выкладывает все потихоньку в openSource это радует.
Хотите стабильности от жизни - берите QT, лет 10 еще точно актуальна будет. Хотите простоты и скорости разработки, UI посовременнее и посложнее - что-то из нового.

- Второй момент, после производительности. Графическая библиотека сегодня - это совместимость с "современным дизайном" .
Что я имею ввиду: когда дизайнер вам дает исходник в Figma/Sketch, иконки в SVG видео в h264 и пр. и вам нужно рассмотреть использование этого всего на устройствах 96-300 dpi где все будет адаптивно и подстраиватся под размеры и ориентацию экрана. Вы не должны испытывать боль заднего прохода. Берете и делаете, т.к. у вас есть для этого инструменты.
Наверное видели супермелкоту в windows программах когда DPI экрана под 300, это как раз MFC, QT и подобные
Про линукс на FullHD планшете 8" это отдельная большая тема беседы. Хотя вроде как в последних сборках имеется поддержка hiDPI устройств.
Тоже самое под мобильные платформы. из-за разнородицы dpi я как раз и рекомендовал использовать что-то вроде Flutter, т.к. он создан для таких устройств, в отличии от многих библиотек допиленных, созданных еще для PC в лохматые года, через костыли говна и палки пытающихся как-то с грехом пополам отрисовать несвойственную ей среду, по пути теряя все преимущества производительности плюсов.
Хотя, справедливости ради, я видел С++ решения которые на мобилках летают суперски, но это уже вопрос профессионализма, крутой барабанщик и на кастрюлях сыграет много лучше новичка, но учится лучше на хорошем и заточенном инструменте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
(сразу - никак Qt)

А зря. Это ведь идеальный язык для GUI.

Погуглил за вас: https://tproger.ru/digest/cpp-best-gui/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы