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

C++

Войти
Регистрация
Восстановить пароль
 
Kseon12
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
#1

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

29.06.2015, 15:01. Просмотров 1028. Ответов 12
Метки нет (Все метки)

Да, такие темы периодически всплывали. Но последняя более похожая датирована 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
Посмотрите здесь:

Стоит ли изучая С++, переключиться на С# для создания GUI ? - C++
Всем привет. Я учусь программировать на с++, всегда делал программы только в консольных окнахи сейчас появилось желание написать...

Какие библиотеки лучше использовать для создания Gui - Visual C++
Пока-что рассмотрим "либы" для Винды. На какие библиотеки/технологии стоит обратить внимание??? Qt производительная GTK не...

Средства для отслеживания сообщений - Visual C++
Господа! Есть ли в Visual Studio какие-нибудь средства для отслеживания сообщений (так, чтобы во время отладки программы их можно было...

Средства для генерации случайных чисел - C++
В Си было удобно подключить рандомные числа. через randomize(); a=random(10)-5; В Си++ кроме rand() есть способы еще подключить...

Средства для уменьшения выделения памяти - C++
Светофор, установленный на повороте в торговый центр «МЕГА» с Новомосковского тракта, работает в таком режиме, что за одну минуту повернуть...

Средства для контроля работы с динамической памятью - C++
Здравствуйте, товарищи! При написании программы на С++ встала проблема контроля выделения/удаления динамической памяти (необходимо для...

Какие есть средства для работы с MySQL? - C++
Как можно на СИ++ удалять, читать и вставлять данные в базу данных MySQL?? Какие для этого есть средства можете дать ссылку??

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tezaurismosis
Администратор
Эксперт .NET
6781 / 3151 / 488
Регистрация: 17.04.2012
Сообщений: 7,835
Записей в блоге: 14
10.07.2015, 14:05     Средства для создания GUI #2
Тема для новой войны (точнее, давно не новой).
На WinAPI вам придётся писать много кода, есть библиотеки с более высоким уровнем абстракции.
Из кроссплатформенных - Qt, GTK+, wxWidgets. Первый активно развивается, второй тоже, но для него нет таких удобных средств, как Qt Creator. Третий захирел, насколько мне известно.
MFC майкрософтом уже не развивается, у них другие планы.
Берите Qt, короче говоря.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 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
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 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
7102 / 5279 / 267
Регистрация: 10.12.2010
Сообщений: 23,290
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 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++? - C++
Как работать с длинной арифметикой в C++? Может есть какие-нибудь функции предназначенные именно для этого?

Средства для проектирования больших проектов с использованием ООП - Visual C++
Всем привет! Когда пишешь небольшую программу, все получается уместить в голове и ничего проектировать не нужно. Сейчас впервые я пытаюсь...

Есть ли в cmake встроенные средства для копирования файлов - C++
Есть ли в cmake встроенные средства для копирования файлов, чтобы не зависеть от окружения. Например, в windows - copy, в cygwin - cp, etc.

Какие средства ООП можно применить для описания Игрока и Противника? - C++
Всем доброго времени суток! Ситуация следующая: написал игру на курсовой в универе. Основная цель: написать графическую игру с...

Есть ли в WinApi на версиях Windows >= Win7 встроенные средства для работы ZIP архивами ? - C++ WinAPI
Привет! Вопрос в сабжекте. Что хотелось бы: 1. Не использовать внешние экзешники 2. Не тащить с собой DLL-ки 3. Иметь возможность...


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

Или воспользуйтесь поиском по форуму:
MicM
821 / 488 / 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
Ответ Создать тему
Опции темы

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