61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
|
|
1 | |
Средства для создания GUI29.06.2015, 15:01. Показов 5952. Ответов 12
Метки нет (Все метки)
Да, такие темы периодически всплывали. Но последняя более похожая датирована 2010 годом, за пять лет то все могло уже кардинально поменяться.
Собственно вопрос, какими средствами создается GUI в win32 приложении ? Какие из них лучше использовать, какие нет. Я знаю про существование библиотек MFC, Qt, GDI+. WinAPI в конце концов. Однако, я понятия не имею ни преимуществ/недостатков каждой из них(кроме кроссплатформенности Qt), ни возможности их применения в реальных проектах. Вот скажем, есть приложения Photoshop, ACDSee, какой нибудь тонкий клиент какого либо сервиса( Steam'a того же), и еще тонна приложений с красивым, шустрым интерфейсом. С помощью чего они были сделаны ? Зачем мне это/цель: 1) Хоть я пока что пишу для себя, но хочется осваивать инструмент для создания приложений высокого уровня. Что бы избежать ситуации, выбрав какой то инструмент и придя на собеседование услышать, что то чем я пользуюсь уже все успели позабыть. 2) В планах реализовать жалкое подобие UML редактора (двигающиеся элементы, отрисовка новых и тд. ), потому производительность рендеринга ключевой аспект. P.S. По первому пункту, если бы вопрос стоял только в предстоящем собеседовании, то можно было бы просто по вакансиям поглядеть. Однако возможно есть инструменты, которые более удобны/полезны/лучше, но еще не получили распространение среди фирм.
0
|
29.06.2015, 15:01 | |
Ответы с готовыми решениями:
12
Какие библиотеки лучше использовать для создания Gui Стоит ли изучая С++, переключиться на С# для создания GUI ? Трудности с выбором IDE для создания GUI Visual C++, какие есть способы создания GUI? |
Администратор
|
|
10.07.2015, 14:05 | 2 |
Тема для новой войны (точнее, давно не новой).
На WinAPI вам придётся писать много кода, есть библиотеки с более высоким уровнем абстракции. Из кроссплатформенных - Qt, GTK+, wxWidgets. Первый активно развивается, второй тоже, но для него нет таких удобных средств, как Qt Creator. Третий захирел, насколько мне известно. MFC майкрософтом уже не развивается, у них другие планы. Берите Qt, короче говоря.
1
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
10.07.2015, 17:49 | 3 |
Чисто для коллекции могу предложить рассмотреть и такие направления:
а) легковесные надстройки над WinAPI, которые скрывают значительную часть "грязи", добавляют контроль типов и удобный ОО-синтаксис, но при этом конечный продукт получается практически таким же, как если бы писался на чистом WinAPI; б) свой собственный GUI средствами OpenGL (вот уж где можно добиться высокой производительности рендеринга).
0
|
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
|
|
10.07.2015, 21:10 [ТС] | 4 |
В качестве "легковестных надстроек", что именно вы советуете ?
Отличная идея в целом. Я как то думал в этом направлении, но посчитал что для обычного приложения - это перебор По поверхностному взгляду - она действительно фаворит. Во первых библиотека включает в себя не только отрисовку GUI но и полным полно всего другого. Кроссплатформенный. Есть своя IDE. Встречается как одно из желаемых требований в вакансиях. А вот по поводу WinApi. Все элементы которые я создаю - выглядят ужасно ) Стиля Windows 98. Как их заставить выглядеть лучше - вероятней всего самому рисовать и тд. Как именно я не нашел увы (более чем уверен потому что не правильно искал). Если сможете для этого какие то примеры дать - был бы весьма признателен.
0
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
10.07.2015, 21:21 | 5 |
Тут лучше поискать самостоятельно что-нибудь подходящее, но в качестве примера (или отправной точки) могу ткнуть пальцем в Win32++
Зависит от обстоятельств. Нынче многие приложения не стесняются прибегать к OpenGL для отрисовки интерфейса, включая LibreOffice и Qt Creator. Это из-за дурацких сложностей с визуальными стилями. Самому рисовать не надо, надо не забыть вызвать InitCommonControls и добавить в проект манифест с нужным содержимым.
2
|
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
|
|
11.07.2015, 00:02 [ТС] | 6 |
Тогда в целом стоит будет посмотреть в эту сторону.
С этой функцией я столкнулся, добавляя Date Picker. Но за нее вообще ничего не знаю, как и за манифест
0
|
11.07.2015, 01:05 | 7 |
C++Builder.
В обще избитая темя что бы раписывать, если вбить в поиск по форума поднимится много тем с долгими обсуждениями и спорами. Добавлено через 6 минут Разница между Visual C++ и C++ Builder MFC WinApi для создания интерфейса С++ Builder или Visual C++?
1
|
Неэпический
|
|
11.07.2015, 10:17 | 8 |
Сообщение было отмечено Kseon12 как решение
Решение
Пожалуй, выражу своё, никому не нужное мнение по поводу указаных средств
В силу того, что это непосредственно системные функции, необходимо учитывать множество моментов и написать кучу кода, для реализации каких-то возможностей. Это долго, нудно, сильно подвержено ошибкам, никакой кроссплатформенности (конечно, если не писать свой фрейворк), но дает большой контроль над происходящим. MFC - старый, грустный, унылый фреймворк. Также никакой кроссплатформенности, не очень то прижилось даже в мелкософте. У кого-то вызывает положительные чувтсва, у кого-то рвотный рефлекс. Как по мне, то в топку его, если есть альтернативы. Qt - мощный фреймворк для разработки, содержит множество разнообразных примочек, но для helloworld проектов как-то тяжеловат, всё равно что стрелять из пушки по комарам. GTK+ - достаточно хороший фреймворк, но он сишный. Куча приведений типов и макросов могут превратить код в такую лапшу, что никакой вилкой не разгрести. Gtkmm - c++ обертка для gtk+. Всё аккуратно запаковано по классам и разложено по полочкам. Как по мне, так очень даже хорош, как для больших проектов, так и для helloworld. Легко осваиваится, кроссплатформенность также в наличии.
2
|
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
|
|
11.07.2015, 11:08 [ТС] | 9 |
Спрашивать что бы вы предпочли, я наверное не буду. Но то, что для создания простого пустого окна требуется всего лишь 2 строчки - с одной стороны большой плюс. Но учитывая что через WinApi на ето дело уйдет более сотни - контроль за происходящим судя по всему довольно минимальный.
И если он в целом не нужен, то Qt/Gtkmm наверное будут более оптимальным вариантом
0
|
Croessmah
|
11.07.2015, 11:47
#10
|
Не по теме: Блин, только сейчас заметил, что там gdi+, а не gtk +
0
|
Kseon12
|
11.07.2015, 15:34
[ТС]
#11
|
0
|
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
|
|
14.07.2015, 00:15 | 13 |
Посоветовал бы остановить выбор на Qt, т.к. довольно обширный и популярный фреймворк для создания кроссплатформенных приложений. Хорошо документирован. К тому же, Qt интегрирован с некоторыми популярными языками программирования. Например, Python - PyQt, Ruby - QtRuby и т. д.
Но интереса и кругозора ради имеет смысл поковырять WinAPI, wxWidgets, GTK+ или что-то еще. Как раз и поймете, что есть что. Тем более, как я понял, время у Вас есть.
1
|
14.07.2015, 00:15 | |
14.07.2015, 00:15 | |
Помогаю со студенческими работами здесь
13
Средства для создания браузерных игр Unit тестирование. Есть ли встроенные средства для создания отчета? Как скачать и установить средства для создания Metro-приложений? Перехват данных загруженой в память игры для создания gui для неё Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |