GUI с С++? или С# и Java - путь?
Я почти закончил курс об использовании ООП на С++, и все программы, которые мы написали в этом курсе, были консольными приложениями. Я также закончил университетский курс по программированию на С, поэтому я думаю, что у меня есть основательные основы программирования на C, и сейчас самое время сделать большой шаг к графическому интерфейсу.
Я много гуглинга, и каждый раз, когда я читал больше страниц, я больше смущаюсь, я узнал, что в прошлом были слишком известные варианты, которые являются WinAPI и MFC. Я попытался заглянуть в WinAPI, но это кажется довольно сложным и требует много времени, поэтому я попросил совета у преподавателя, и он сказал мне, что если я хочу писать программы с графическим интерфейсом, я бы лучше изучил С# или Java, а не использовал С++, который быстрее, но лучше разработан для приложений с низким уровнем программирования, таких как драйверы и так далее. Поэтому я искал в Интернете, чтобы узнать, используется ли С++ для написания приложений в настоящее время, и к моему удивлению Firefox, Google Chrome, Notepad ++ и многие другие графические приложения на sourceforge.net написаны на С++ в противоречии с моим советом инструктора.
Также я узнал, что вы можете использовать библиотеки QT или GTK для создания графических приложений на С++, но я не знаю, как это сделать, или если это правда.
Итак, мой вопрос - это то, что является лучшим в настоящее время вариантом для эффективного написания графических программ независимо от того, насколько крутой является кривая обучения. Я googled для вариантов интерфейса С++, потому что он считает, что это будет быстрее, чем Java или приложения С#. Если у кого-то другое мнение, пожалуйста, пишите.
Ответы
Ответ 1
Самый быстрый способ - использовать С# и WPF. Это быстро и просто для небольших приложений, но может быть довольно сложным, на мой взгляд, и есть чему поучиться. По крайней мере, вы являетесь будущим доказательством, Microsoft, наконец, подталкивает WPF. (Visual Studio использует его, и впереди будет еще много версий)
Единственным реальным недостатком является то, что вы сможете запускать приложение только в Windows.
Если вы действительно хотите доступ к "низкому уровню", там есть много вариантов взаимодействия с кодом С++.
Ответ 2
Прежде всего, если вы хотите наклониться, чтобы написать независимый от платформы GUI, тогда С# не идет.
Когда вы пишете GUI на С++, возникает вопрос о наборе инструментов, Qt и GTKmm предоставляют вам очень прочные кросс-платформенные инструментальные средства. В то время как Qt имеет более "родной" внешний вид в Windows, чем GTKmm, Java Swing позволяет писать очень хороший графический интерфейс, но он будет тяжелее и медленнее, чем один, написанный с Qt или GTKmm.
Теперь... С#/WPF такие же проблемы, как Java GUI - медленнее, чем native, но также он также блокирует вас только на одной платформе.
Мои личные советы начинаются с Qt.
Ответ 3
Если вы новичок в программировании GUI, С#/WinForms будут лучше для вас. Он довольно прост, имеет большое сообщество вокруг него, имеет множество готовых к использованию элементов управления.. и лучшую документацию когда-либо - MSDN.
Конечно, если вы ищете глубокие знания о том, "как все работает", вам нужно понять графический интерфейс Win32. Итак, вы всегда можете вернуться к С++/MFC. Я бы не предложил никаких других библиотек С++ (как Qt), а не потому, что они плохие, а потому, что им нужен хороший опыт для запуска.
Мое предложение начинается с WinForms, undestand basic и учится создавать простое приложение. Как только вы овладеете этим, идите глубже.
Ответ 4
Попробуйте Juce.
Ответ 5
Это зависит от того, какое приложение GUI вы хотите написать. Если вы хотите написать приложение с укороченной оболочкой, такое как MS Word или Firefox, то С++ - это путь, потому что рынок требует последнего небольшого количества производительности с минимальными зависимостями. OTOH, если вы хотите написать (например) интерфейс к базе данных вашей компании, производительность графического интерфейса обычно не важна, но доставка чего-то быстро и дешево, поэтому вы должны использовать что-то большее RAD, например С#.
Ответ 6
Qt очень хорошо. Люди говорят, что WTL тоже приятный, но я не использовал его.
Java и GUI не очень хорошо вписываются в мою голову. Есть некоторые родные для Java GUI-библиотеки (AWT, Swing), но они медленны и не обеспечивают интерфейс, родной для платформы, на которой он работает. Существует также SWT, который используется Eclipse, но не видел ни одного приложения, кроме Eclipse, используя его.
Если GUI-запросы просты, я бы придерживался С#: вы отбрасываете некоторые элементы управления в своей форме, записываете некоторые логики за ним, и вы готовы к работе. Если вам нужен какой-то действительно сложный графический интерфейс, я не думаю, что во время разработки между разными языками будет огромная разница.
Ответ 7
С++ хорош для скорости (инструменты для рендеринга HTML, такие как хром /firefox или редакторы изображений, такие как Photoshop) и для выполнения "умений", которые вы, возможно, не могли бы сделать на других платформах.
Но это более болезненно для использования, и в любой из библиотек пользовательского интерфейса на С++ существует гораздо больше кривой luearning, чем вам хотелось бы узнать.
Поскольку вам кажется, что этого не требуется, как ясно из вашего вопроса, ваш выбор по умолчанию должен быть С# или Java или Web, как ваш консультант.
Ответ 8
С++ никогда не умирает, поэтому обучение это не ошибочное решение. Однако довольно сложно писать графические приложения с использованием С++ в ранние дни. Поэтому я предлагаю вам использовать С# t для написания некоторых графических приложений перед тем, как переключиться на С++.
Ответ 9
Не совсем ответ на ваш вопрос, но если вы все еще учитесь, а не в производственной линии, попробуйте изучить Win API. На самом деле, я удивлен, что никто тебе этого не сказал.
Вы видите, что все другие фреймворки /API/SDK на самом деле просто обертки вокруг этого API, и есть вероятность, что всякий раз, когда вас попросят сделать что-то нестандартное в вашем графическом интерфейсе, вы не найдете решения в своей структуре и вам понадобятся выкапывать в Win API в любом случае.
Да, это только API с Windows, и все еще зная, что происходит на самом деле за сценой, может быть очень полезно время от времени.
Только мои 2 цента.
Ответ 10
Если вы решите использовать С++, посмотрите на wxwidgets - таким образом вы не ограничиваете себя только одной операционной системой (окна в этом случае с MFC). Также QT должен быть хорошим, но я никогда не пробовал их (у меня нет большого опыта работы с wxwidgets, но несколько раз мне приходилось что-то делать с ними, они работали неплохо).
Если вам не нужна высокая производительность в gui, посмотрите на языки сценариев - у Python есть библиотека по умолчанию, которая хорошо работает (tkinter), а также привязка к wxwidgets
Ответ 11
Если вы настаиваете на использовании С++, попробуйте Win32 или GTK. См. этот поток.
В противном случае я рекомендую вам попробовать другой язык, например Python для части графического интерфейса ваших приложений. Оставайтесь на своем предпочтительном языке и оберните. Не забывайте о лучшей функции С++: двоичная совместимость с C.
Ответ 12
Если у вас есть основа С++ и вы хотите расширить, я рекомендую начать с Qt. В дистрибутив входит графический дизайнер пользовательского интерфейса и Asistant - браузер для документации. Существует также отдельный продукт Qt Creator - полная IDE с учетом Qt, в которой есть все интегрированное (включая компилятор). Все это, если бесплатно и очень легко настроить. Отличные учебные пособия. Qt также включает классы non gui для общих проблем программирования (например, контейнеры, вариантный тип и т.д.). Вы можете конвертировать консольное приложение в графический интерфейс в течение нескольких часов и решить, хотите ли вы продолжить его изучение или попробовать другой инструментарий.
Просто перейдите к http://qt.nokia.com/downloads скачайте SDK, установите его, и у вас есть все, чтобы начать кодирование.
Ответ 13
QT хорош, но я попробовал JUCE, и теперь я думаю, что это лучше.
JUCE быстрый, чистый, простой в использовании. Вы можете интегрировать его с Eclipse и GCC (и minGW), использовать функции отладки (gdb под Eclipse) и многое другое.
Вы можете скомпилировать свой код в Windows, Linux, OSX, IOS и Androis без значительных изменений.
Следите за своим сайтом:
http://www.rawmaterialsoftware.com/juce.php
Если вы говорите по-испански, посмотрите на эту ссылку:
http://juceratot.eshost.es
Рассматривать