Подтвердить что ты не робот

Ваша лучшая библиотека для создания графического интерфейса (gtk, qt, win32 api и т.д.)?

Как вы думаете, какой лучший способ создать gui в Windows? с gtk или win32 api?

Вы рекомендуете GTK для Windows? Да? НЕТ? Почему?

4b9b3361

Ответ 1

Посмотрим.

  • Win32 очень низкоуровневый, основанный на C и неудобный для использования.
  • MFC считается устаревшим.
  • С# (или С++) с .NET, вероятно, является вашим основным выбором для разработки Windows.
    • Есть даже полуограниченные способы переноса этого кода на другие платформы (Mono).
  • Java отлично подходит для очень независимого от платформы кода, который "просто запускается". Извините, вы сказали С++.
  • QT относительно независим от платформы.
  • GTK +, конечно, хотя у меня лично мало опыта.

Лично, если я делаю что-то конкретное для Windows, я использую .NET - инструменты в Visual Studio очень мощные, и это отличный всеобъемлющий набор.

Для не зависящих от платформы материалов я использую Java, но это не может быть вашим инструментом выбора. Я видел, что QT много использовал для этой цели.

Ответ 2

Если вы делаете 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;

Ответ 3

У вас действительно есть много инструментов/фреймворков 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. Оба они написаны на (довольно современном) С++, активно развиваются, имеют хороший дизайн библиотеки, запускают многоплатформенные и предлагают множество функций. В любом случае, поиграйте с несколькими из библиотек, перечисленных в ответах здесь, и посмотрите, какой из них позволяет вам делать то, что вы хотите сделать наиболее легко:)

Ответ 4

Win32 API слишком сложен, MFC слишком раздражает. Я использовал MFC, win32api и Qt в Windows. По моему мнению, Qt - лучший. Я не пробовал GTK, так что извините, ничего не зная об этом.

Редактировать 2019: похоже, все эти варианты outdated, как насчет кроссплатформенных решений, реактивных окон, электронов

Ответ 5

Я использовал GTK + в прошлом для многоплатформенного приложения. Я нашел это относительно простым для изучения и использования. На мой взгляд, основным преимуществом GTK + является то, что вы сможете перенести приложение на другие системы окон. И главным недостатком является то, что он не будет выглядеть точно так же, как и другие приложения Windows. Если вы занимаетесь кросс-платформенной работой или уже хорошо знакомы с GTK + (и у вас нет времени на изучение нового инструментария), я бы рекомендовал его.

Ответ 6

оба для c, но есть хорошая оболочка для gtk (gtkmm).

gtk имеет свой собственный внешний вид, поэтому на стороне пользователя нет скининга элементов ui (со стилями окон). но мне нравится программировать с ним больше.

win32, mfc,.net в основном ограничены визуальной студией ms, а gtk очень сложно использовать с vs.

вы должны посмотреть на win32,.net, gtkmm и qt. просто попробуйте написать и скомпилировать с ними простую мирную программу hello

верхняя часть win32:

  • собственный код Windows
  • быстро

отрицательные стороны:

  • нет классов, только c с ручками (очень дерьмовый)
  • по-моему очень плохо документировано

превышения gtk (мм):

  • легко учиться/программировать
  • документально подтвержденный

отрицательные стороны:

  • как-то сложно установить файлы разработки
  • нет просмотра собственных окон

Ответ 7

Лично я предпочитаю Qt, но это действительно зависит от того, какие пользовательские интерфейсы вы хотите сделать.

Против Win32:

  • низкий уровень, высокая сложность для выполнения тривиальных вещей. Вы должны делать ВСЕ

  • Если вы пройдете этот маршрут, я бы пересчитал книгу, подобную той, что была из Petzold.

Pro Qt:

  • Хорошие графические интерфейсы

  • Можно легко и легко изменить внешний вид и стиль, создав таблицы стилей

  • Механизм сигналов и слотов уведомляет вас о событиях пользовательского интерфейса, таких как "нажатие кнопки" и т.д.

  • Хорошая система размещения

  • Интегрировано с IDE Visual Studio

  • Современный объектно-ориентированный С++-код, который легко понять и использовать

  • Qt Assistant (очень хорошая документация)

  • Относительно либеральное лицензирование (LGPL)

  • Qt Designer - инструмент проектирования WYSIWYG, который вы можете использовать для дизайна формы

  • Поставляется с множеством других функций С++, включая XML, создание сетей, eventloops, потоки, доступ к базе данных и т.д.

Против Qt:

  • Промежуточный шаг использования компилятора MOC

Pro WPF:

  • Если вы хотите новые возможности WPF для новых платформ Windows, WPF - это путь.

Ответ 8

Если вам нужна поддержка Linux (или Mac), то Qt. Else Win32.

Ответ 9

Возможно, вы захотите попробовать 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

Личный опыт

Ответ 10

Для независимой разработки платформы я бы рекомендовал Qt вместо текущего GTK. Рисунок GTK2 был очень медленным по сравнению с Qt, а также Win32. Если вы любите чувствовать внешний вид, wxWidgets сделана для вас.