Форум программистов, компьютерный форум CyberForum.ru

Средства для создания GUI - C++

Восстановить пароль Регистрация
 
Kseon12
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
29.06.2015, 15:01     Средства для создания GUI #1
Да, такие темы периодически всплывали. Но последняя более похожая датирована 2010 годом, за пять лет то все могло уже кардинально поменяться.

Собственно вопрос, какими средствами создается GUI в win32 приложении ? Какие из них лучше использовать, какие нет.

Я знаю про существование библиотек MFC, Qt, GDI+. WinAPI в конце концов.
Однако, я понятия не имею ни преимуществ/недостатков каждой из них(кроме кроссплатформенности Qt), ни возможности их применения в реальных проектах.
Вот скажем, есть приложения Photoshop, ACDSee, какой нибудь тонкий клиент какого либо сервиса( Steam'a того же), и еще тонна приложений с красивым, шустрым интерфейсом. С помощью чего они были сделаны ?

Зачем мне это/цель:
1) Хоть я пока что пишу для себя, но хочется осваивать инструмент для создания приложений высокого уровня. Что бы избежать ситуации, выбрав какой то инструмент и придя на собеседование услышать, что то чем я пользуюсь уже все успели позабыть.
2) В планах реализовать жалкое подобие UML редактора (двигающиеся элементы, отрисовка новых и тд. ), потому производительность рендеринга ключевой аспект.

P.S.
По первому пункту, если бы вопрос стоял только в предстоящем собеседовании, то можно было бы просто по вакансиям поглядеть. Однако возможно есть инструменты, которые более удобны/полезны/лучше, но еще не получили распространение среди фирм.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 15:01     Средства для создания GUI
Посмотрите здесь:

C++ Средства для контроля работы с динамической памятью
Visual C++ Какие библиотеки лучше использовать для создания Gui
Visual C++ Средства для отслеживания сообщений
C++ Средства для уменьшения выделения памяти
Средства для проектирования больших проектов с использованием ООП Visual C++
C++ Как запустить GUI приложение (например, notepad.exe) без отображения GUI?
Какие средства ООП можно применить для описания Игрока и Противника? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tezaurismosis
Супер-модератор
6366 / 2994 / 471
Регистрация: 17.04.2012
Сообщений: 7,473
Записей в блоге: 14
Завершенные тесты: 4
10.07.2015, 14:05     Средства для создания GUI #2
Тема для новой войны (точнее, давно не новой).
На WinAPI вам придётся писать много кода, есть библиотеки с более высоким уровнем абстракции.
Из кроссплатформенных - Qt, GTK+, wxWidgets. Первый активно развивается, второй тоже, но для него нет таких удобных средств, как Qt Creator. Третий захирел, насколько мне известно.
MFC майкрософтом уже не развивается, у них другие планы.
Берите Qt, короче говоря.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,901
Завершенные тесты: 1
10.07.2015, 17:49     Средства для создания GUI #3
Чисто для коллекции могу предложить рассмотреть и такие направления:
а) легковесные надстройки над WinAPI, которые скрывают значительную часть "грязи", добавляют контроль типов и удобный ОО-синтаксис, но при этом конечный продукт получается практически таким же, как если бы писался на чистом WinAPI;
б) свой собственный GUI средствами OpenGL (вот уж где можно добиться высокой производительности рендеринга).
Kseon12
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
10.07.2015, 21:10  [ТС]     Средства для создания GUI #4
Цитата Сообщение от Nick Alte Посмотреть сообщение
а) легковесные надстройки над WinAPI, которые скрывают значительную часть "грязи", добавляют контроль типов и удобный ОО-синтаксис, но при этом конечный продукт получается практически таким же, как если бы писался на чистом WinAPI;
В качестве "легковестных надстроек", что именно вы советуете ?
Цитата Сообщение от Nick Alte Посмотреть сообщение
б) свой собственный GUI средствами OpenGL (вот уж где можно добиться высокой производительности рендеринга).
Отличная идея в целом. Я как то думал в этом направлении, но посчитал что для обычного приложения - это перебор

Цитата Сообщение от tezaurismosis Посмотреть сообщение
Тема для новой войны (точнее, давно не новой).
На WinAPI вам придётся писать много кода, есть библиотеки с более высоким уровнем абстракции.
Из кроссплатформенных - Qt, GTK+, wxWidgets. Первый активно развивается, второй тоже, но для него нет таких удобных средств, как Qt Creator. Третий захирел, насколько мне известно.
MFC майкрософтом уже не развивается, у них другие планы.
Берите Qt, короче говоря.
По поверхностному взгляду - она действительно фаворит. Во первых библиотека включает в себя не только отрисовку GUI но и полным полно всего другого. Кроссплатформенный. Есть своя IDE. Встречается как одно из желаемых требований в вакансиях.

А вот по поводу WinApi. Все элементы которые я создаю - выглядят ужасно ) Стиля Windows 98. Как их заставить выглядеть лучше - вероятней всего самому рисовать и тд. Как именно я не нашел увы (более чем уверен потому что не правильно искал). Если сможете для этого какие то примеры дать - был бы весьма признателен.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,901
Завершенные тесты: 1
10.07.2015, 21:21     Средства для создания GUI #5
Цитата Сообщение от Kseon12 Посмотреть сообщение
В качестве "легковестных надстроек", что именно вы советуете ?
Тут лучше поискать самостоятельно что-нибудь подходящее, но в качестве примера (или отправной точки) могу ткнуть пальцем в Win32++
Цитата Сообщение от Kseon12 Посмотреть сообщение
для обычного приложения - это перебор
Зависит от обстоятельств. Нынче многие приложения не стесняются прибегать к OpenGL для отрисовки интерфейса, включая LibreOffice и Qt Creator.
Цитата Сообщение от Kseon12 Посмотреть сообщение
Все элементы которые я создаю - выглядят ужасно
Это из-за дурацких сложностей с визуальными стилями. Самому рисовать не надо, надо не забыть вызвать InitCommonControls и добавить в проект манифест с нужным содержимым.
Kseon12
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
11.07.2015, 00:02  [ТС]     Средства для создания GUI #6
Цитата Сообщение от Nick Alte Посмотреть сообщение
Зависит от обстоятельств. Нынче многие приложения не стесняются прибегать к OpenGL для отрисовки интерфейса, включая LibreOffice и Qt Creator.
Тогда в целом стоит будет посмотреть в эту сторону.
Цитата Сообщение от Nick Alte Посмотреть сообщение
Это из-за дурацких сложностей с визуальными стилями. Самому рисовать не надо, надо не забыть вызвать InitCommonControls и добавить в проект манифест с нужным содержимым.
С этой функцией я столкнулся, добавляя Date Picker. Но за нее вообще ничего не знаю, как и за манифест
Avazart
Нарушитель
6953 / 5191 / 256
Регистрация: 10.12.2010
Сообщений: 22,769
Записей в блоге: 17
11.07.2015, 01:05     Средства для создания GUI #7
Цитата Сообщение от Kseon12 Посмотреть сообщение
Я знаю про существование библиотек MFC, Qt, GDI+. WinAPI в конце концов.
C++Builder.

В обще избитая темя что бы раписывать, если вбить в поиск по форума поднимится много тем с долгими обсуждениями и спорами.

Добавлено через 6 минут
Разница между Visual C++ и C++ Builder
MFC WinApi для создания интерфейса
С++ Builder или Visual C++?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12268 / 6955 / 782
Регистрация: 27.09.2012
Сообщений: 17,254
Записей в блоге: 2
Завершенные тесты: 1
11.07.2015, 10:17     Средства для создания GUI #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пожалуй, выражу своё, никому не нужное мнение по поводу указаных средств
MFC, Qt, GDI+. WinAPI
Начну с WinAPI.
В силу того, что это непосредственно системные функции, необходимо учитывать множество моментов и написать кучу кода, для реализации каких-то возможностей. Это долго, нудно, сильно подвержено ошибкам, никакой кроссплатформенности (конечно, если не писать свой фрейворк), но дает большой контроль над происходящим.

MFC - старый, грустный, унылый фреймворк. Также никакой кроссплатформенности, не очень то прижилось даже в мелкософте. У кого-то вызывает положительные чувтсва, у кого-то рвотный рефлекс. Как по мне, то в топку его, если есть альтернативы.

Qt - мощный фреймворк для разработки, содержит множество разнообразных примочек, но для helloworld проектов как-то тяжеловат, всё равно что стрелять из пушки по комарам.

GTK+ - достаточно хороший фреймворк, но он сишный. Куча приведений типов и макросов могут превратить код в такую лапшу, что никакой вилкой не разгрести.
Gtkmm - c++ обертка для gtk+. Всё аккуратно запаковано по классам и разложено по полочкам. Как по мне, так очень даже хорош, как для больших проектов, так и для helloworld. Легко осваиваится, кроссплатформенность также в наличии.
Kseon12
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
11.07.2015, 11:08  [ТС]     Средства для создания GUI #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Qt - мощный фреймворк для разработки, содержит множество разнообразных примочек, но для helloworld проектов как-то тяжеловат, всё равно что стрелять из пушки по комарам.
GTK+ - достаточно хороший фреймворк, но он сишный. Куча приведений типов и макросов могут превратить код в такую лапшу, что никакой вилкой не разгрести.
Gtkmm - c++ обертка для gtk+. Всё аккуратно запаковано по классам и разложено по полочкам. Как по мне, так очень даже хорош, как для больших проектов, так и для helloworld. Легко осваиваится, кроссплатформенность также в наличии.
Спрашивать что бы вы предпочли, я наверное не буду. Но то, что для создания простого пустого окна требуется всего лишь 2 строчки - с одной стороны большой плюс. Но учитывая что через WinApi на ето дело уйдет более сотни - контроль за происходящим судя по всему довольно минимальный.
И если он в целом не нужен, то Qt/Gtkmm наверное будут более оптимальным вариантом
Croessmah
11.07.2015, 11:47
  #10

Не по теме:

Блин, только сейчас заметил, что там gdi+, а не gtk +

Kseon12
11.07.2015, 15:34  [ТС]
  #11

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Блин, только сейчас заметил, что там gdi+, а не gtk +
Но и за gtkmm тоже полезно было узнать

Kurles
154 / 119 / 29
Регистрация: 30.05.2015
Сообщений: 373
13.07.2015, 22:29     Средства для создания GUI #12
Для небольшого приложения fltk в самый раз подойдёт.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 00:15     Средства для создания GUI
Еще ссылки по теме:

C++ Какие есть средства для работы с MySQL?
C++ Средства для генерации случайных чисел
Стоит ли изучая С++, переключиться на С# для создания GUI ? C++
C++ Есть ли в cmake встроенные средства для копирования файлов
C++ Какие средства для работы с длинной арифметикой имеются в C++?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
14.07.2015, 00:15     Средства для создания GUI #13
Цитата Сообщение от Kseon12 Посмотреть сообщение
Хоть я пока что пишу для себя, но хочется осваивать инструмент для создания приложений высокого уровня.
Посоветовал бы остановить выбор на Qt, т.к. довольно обширный и популярный фреймворк для создания кроссплатформенных приложений. Хорошо документирован. К тому же, Qt интегрирован с некоторыми популярными языками программирования. Например, Python - PyQt, Ruby - QtRuby и т. д.
Но интереса и кругозора ради имеет смысл поковырять WinAPI, wxWidgets, GTK+ или что-то еще. Как раз и поймете, что есть что. Тем более, как я понял, время у Вас есть.
Yandex
Объявления
14.07.2015, 00:15     Средства для создания GUI
Ответ Создать тему
Опции темы

Текущее время: 08:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru