Как вы думаете, какой лучший способ создать gui в Windows? с gtk или win32 api?
Вы рекомендуете GTK для Windows? Да? НЕТ? Почему?
Как вы думаете, какой лучший способ создать gui в Windows? с gtk или win32 api?
Вы рекомендуете GTK для Windows? Да? НЕТ? Почему?
Посмотрим.
Лично, если я делаю что-то конкретное для Windows, я использую .NET - инструменты в Visual Studio очень мощные, и это отличный всеобъемлющий набор.
Для не зависящих от платформы материалов я использую Java, но это не может быть вашим инструментом выбора. Я видел, что QT много использовал для этой цели.
Если вы делаете gui только для окон, я настоятельно рекомендую WIN 32 Api. Я сделал много приложений в GTK +, pyGtk, FLTK и узнал Qt, MFC и SmartWin ++. Поверь мне, но мне нравится Win32 Api. Он может иметь крутую кривую обучения, но для создания собственных приложений для окон он является самым быстрым и BEST. И чем более сложная программа youre получает, тем легче Win32 Api сравнивается с другими инструментами. И в Win32 Api есть вещи, которые вы не можете сделать ни в одном другом наборе инструментов.
ПРОВЕРЕНО:
время начала (простой gui с меню и кнопками): GTK + = 7 секунд; Qt = 4 с; WxWidgets = 3,32 секунды; FLTK = 1 секунда; Win32 Api = 0,34 секунды;
сделанное пространство: Gtk + = 132 kb; Qt = 4,5 мб; WxWidgets = 4,5 мб; FLTK = 54 kb; Win32 Api = 6,5 kb;
У вас действительно есть много инструментов/фреймворков GUI на выбор: Qt, wxWidgets, GTK +/gtkmm, WinAPI, MFC,.NET WinForms/WPF... и это только популярные.
Поскольку вы ограничиваете себя С++, я бы вычеркнул .NET, потому что С++ на .NET предназначен для соединения между неуправляемым и управляемым миром. Это не значит, что вы не можете использовать его для других типов разработки, но, учитывая неудобный синтаксис и бесчисленные ловушки, я бы не пошел с ним. Более того, генератор кода WinForms VS помещает код формы в заголовочный файл. Brrrr
Как заявили другие, WinAPI написан на C, очень быстрый и мощный, но очень низкий уровень и не просто программировать/учиться. MFC будет вариантом, поскольку он написан на С++, проще в использовании, чем WinAPI, а также очень мощный. Тем не менее, он довольно устарел (из-за наличия .NET, в основном).
Я бы не рекомендовал GTK +/gtkmm (С++-оболочку для GTK +) для Windows, так как вы не получите внешний вид родных окон, это довольно раздражает для настройки на вашей машине разработчика, и это также тянет вокруг тысяч зависимостей, которые вы должны установить на пользовательской машине. Это на самом деле жаль, потому что особенно gtkmm имеет очень красивую иерархию классов и дизайн. Вероятно, одна из лучших разработанных GUI-библиотек:)
Тем не менее, что бы я рекомендовал? Либо Qt, либо wxWidgets. Оба они написаны на (довольно современном) С++, активно развиваются, имеют хороший дизайн библиотеки, запускают многоплатформенные и предлагают множество функций. В любом случае, поиграйте с несколькими из библиотек, перечисленных в ответах здесь, и посмотрите, какой из них позволяет вам делать то, что вы хотите сделать наиболее легко:)
Win32 API слишком сложен, MFC слишком раздражает. Я использовал MFC, win32api и Qt в Windows. По моему мнению, Qt - лучший. Я не пробовал GTK, так что извините, ничего не зная об этом.
Редактировать 2019: похоже, все эти варианты outdated
, как насчет кроссплатформенных решений, реактивных окон, электронов
Я использовал GTK + в прошлом для многоплатформенного приложения. Я нашел это относительно простым для изучения и использования. На мой взгляд, основным преимуществом GTK + является то, что вы сможете перенести приложение на другие системы окон. И главным недостатком является то, что он не будет выглядеть точно так же, как и другие приложения Windows. Если вы занимаетесь кросс-платформенной работой или уже хорошо знакомы с GTK + (и у вас нет времени на изучение нового инструментария), я бы рекомендовал его.
оба для c, но есть хорошая оболочка для gtk (gtkmm).
gtk имеет свой собственный внешний вид, поэтому на стороне пользователя нет скининга элементов ui (со стилями окон). но мне нравится программировать с ним больше.
win32, mfc,.net в основном ограничены визуальной студией ms, а gtk очень сложно использовать с vs.
вы должны посмотреть на win32,.net, gtkmm и qt. просто попробуйте написать и скомпилировать с ними простую мирную программу hello
верхняя часть win32:
отрицательные стороны:
превышения gtk (мм):
отрицательные стороны:
Лично я предпочитаю Qt, но это действительно зависит от того, какие пользовательские интерфейсы вы хотите сделать.
Против Win32:
низкий уровень, высокая сложность для выполнения тривиальных вещей. Вы должны делать ВСЕ
Если вы пройдете этот маршрут, я бы пересчитал книгу, подобную той, что была из Petzold.
Pro Qt:
Хорошие графические интерфейсы
Можно легко и легко изменить внешний вид и стиль, создав таблицы стилей
Механизм сигналов и слотов уведомляет вас о событиях пользовательского интерфейса, таких как "нажатие кнопки" и т.д.
Хорошая система размещения
Интегрировано с IDE Visual Studio
Современный объектно-ориентированный С++-код, который легко понять и использовать
Qt Assistant (очень хорошая документация)
Относительно либеральное лицензирование (LGPL)
Qt Designer - инструмент проектирования WYSIWYG, который вы можете использовать для дизайна формы
Поставляется с множеством других функций С++, включая XML, создание сетей, eventloops, потоки, доступ к базе данных и т.д.
Против Qt:
Pro WPF:
Если вам нужна поддержка Linux (или Mac), то Qt. Else Win32.
Возможно, вы захотите попробовать Winforms или WPF. Если вы ограничены использованием C/С++, вы можете вставлять .NET-код, используя параметр /clr для компилятора для встраивания .NET-кода для Winforms или WPF. Источники:
http://msdn.microsoft.com/en-us/library/k8d11d4s(VS.71).aspx
http://msdn.microsoft.com/en-us/library/ms754130.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx
Личный опыт
Для независимой разработки платформы я бы рекомендовал Qt вместо текущего GTK. Рисунок GTK2 был очень медленным по сравнению с Qt, а также Win32. Если вы любите чувствовать внешний вид, wxWidgets сделана для вас.