Может ли кто-нибудь порекомендовать какие-либо хорошие ресурсы для создания графических пользовательских интерфейсов, желательно на C / C++?
В настоящее время на меня наибольшее влияние оказывает 3DBuzz.comC++ / OpenGL VTM (модули видеообучения). Хотя они очень хороши, они охватывают большую область графического программирования, поэтому поверхностное программирование графического интерфейса.
Этот вопрос действительно относится к "Как мне сделать графический интерфейс?", где также есть приблизительный набросок моей текущей структуры.
Любой ответ будет оценен.
Редактировать: Я только что прочитал некоторые ответы и заметил, что пропустил некоторые моменты. Мне пришлось ввести вопрос дважды, так как я поймал не ту кнопку и потерял ее.
Во-первых, я упустил два важных момента: это будет кроссплатформенная версия, включая доморощенную, на Sony PSP. Во-вторых: я хочу создать систему с графическим интерфейсом, а не использовать существующую.
Изменить 2: Я думаю, что некоторые из вас упускают суть, я не знаю, что делать с использовать существующей системой графического интерфейса, которую я хочу создать.
Qt в его нынешнем виде не переносится на PSP, не говоря уже о том, что такая задача слишком сложна.
Тем не менее, я решил создать IM-GUI и начал прототипировать код.





Взгляните на Qt. Это библиотека с открытым исходным кодом для создания графического интерфейса. В отличие от Swing в Java, он предполагает множество вещей, поэтому создать функциональный графический интерфейс очень просто. Например, текстовое поле предполагает, что вам нужно контекстное меню, когда вы щелкаете его правой кнопкой мыши с копией, вставкой, выделением всего и т. д. документация также очень хорош.
http://www.fox-toolkit.org имеет справочник по API, если вы ищете, как работать с конкретным фреймворком. Или вас больше интересовала общая теория или что-то более похожее на то, как самому делать низкоуровневые вещи?
Я бы не стал использовать OpenGL для графического интерфейса, если вы не планируете аппаратное ускорение и / или трехмерные эффекты, которые, по вашему мнению, не могут быть получены с более традиционным набором инструментов графического интерфейса (например, Qt, wxWidgets, GTK и т. д.). Если вам просто нужен быстрый простой графический интерфейс для размещения вашей графики OpenGL, тогда ФЛТК - хороший выбор. В противном случае для рендеринга графического интерфейса непосредственно в OpenGL это библиотеки, такие как Графический интерфейс Сумасшедшего Эдди, которые делают именно это и предоставляют множество снимаемыйвиджеты, которые вам не придется изобретать заново. Окно и контекст OpenGL могут быть затем снабжены переносимой библиотекой, такой как SDL.
РЕДАКТИРОВАТЬ: Теперь, когда я вернулся и взглянул на ваш другой пост, думаю, я лучше понимаю, о чем вы спрашиваете. Для графического интерфейса пользователя на встроенной системе, такой как Nintendo DS, я бы подумал об использовании графического интерфейса «немедленного режима». Яри Комппа имеет хороший учебник о них, но вы можете использовать более объектно-ориентированный подход с C++, чем код C, который он представляет.
Для получения дополнительной информации о графическом интерфейсе "немедленного режима" я могу порекомендовать Форум о Молли Рокет. Есть хорошая видеопрезентация идей, лежащих в основе IM-GUI, а также множество дискуссий.
Недавно я собрал очень быструю систему IM-GUI, основанную на презентации на странице Яри, и в моем случае, когда я действительно просто хотел иметь возможность получить пару кнопок и блоков на экране, и более или менее просто жесткий код ответ на вводные данные, это действительно казалось правильным поступком, вместо того, чтобы переходить на более полноценную архитектуру графического интерфейса. (Это было в приложении DirectX, поэтому количество вариантов у меня было довольно ограниченным).
Я второй Qt. Это кроссплатформенный, и мне показалось, что с много проще работать, чем со встроенным графическим интерфейсом Visual Studio. Он имеет двойную лицензию, поэтому, если вы не хотите, чтобы ваш код был GPL, вы можете вместо этого приобрести лицензию.
Я просмотрел видео от Molley Rocket и просмотрел кешированные уроки Яри Комппа.
IM-GUI кажется лучшим способом, я думаю, что он будет намного более рациональным и намного более быстрым в сборке, чем система, которую я изначально имел в виду.
Теперь новый вопрос, я могу только кроме одного ответа. :(
Еще раз спасибо Monjardin и dooz, ура.
вещь2к
Один из самых быстрых способов - использовать python с привязкой к графическому интерфейсу, например pyQt, PyFLTK, tkinter, wxPython, или даже через pygame, который использует SDL.
Это просто быстро и не зависит от платформы. Также непревзойденное управление пакетами.
Видеть:
Для такой платформы, как PSP, я бы немного побеспокоился о производительности графического интерфейса для обмена мгновенными сообщениями. С традиционным типом решения с сохраненным режимом, когда вы создаете элемент управления, вы также можете создать список буфера / отображения вершин или все, что вам нужно для его рендеринга. Мне кажется, что с решением немедленного режима вам нужно будет воссоздавать это динамически для каждого кадра.
Возможно, вас это не волнует, если вы нажимаете только несколько кнопок или это не будет использоваться в игре (при условии, что вы делаете игру), но, особенно если у вас достаточно текста, стоимость рендеринга может начать мешать, если вы не можете найти способ как-то кэшировать списки отображения.