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

Программирование GUI С++ или С#

Я беру занятия по программированию в университете. Я просто взял структуры данных, и я почти готов к разработке шаблонов. С классом шаблонов проектирования инструктор позволяет нам выбрать, какой язык использовать, и какую IDE использовать в наших лабораториях. Поскольку я знаю С++, я использовал это. Большинство классов использовали С#, а некоторые использовали java..

Ну, я только что подписался на графический интерфейс spring и его один и тот же учитель, и он сказал, что мы можем использовать все, что захотим. Поскольку, я никогда не использовал С#, возможно, лучше использовать С++? Я изучил использование QT4, но я не знаю, как это тяжело, и насколько это действительно помогает? Поскольку, там не будет много лекций.

Я рассматриваю использование С#, поскольку я взял классы в VB.NET и использовал winforms совсем немного. Однако, я бы хотел использовать С++, что вы думаете? Является ли С++ gui тем, что я могу использовать в будущем в реальном мире? или мне лучше попробовать учиться С# Я хотел бы придерживаться С++ в моей карьере, хотя...

Я не хочу задерживаться в обучении С# и графическом интерфейсе одновременно. Является ли QT4 хорошим способом?

4b9b3361

Ответ 1

qt не так сложно работать. Я пробовал некоторые комплекты инструментов gui для С++, и это мой опыт в плане С++

Qt

Для разработки С++ и gui я бы в подавляющем большинстве одобрил Qt вместо альтернативных библиотек, таких как win32 api, классы фундамента Microsoft и т.д.

Преимущества

  • qt является кросс-платформой и может использоваться для окон, linux, symbian, windows ce, mac osx
  • qt не так сложно учиться. Если вы понимаете основы классов С++ и некоторые шаблоны программирования
  • qt используется для профессионального создания guis. Я точно не помню, но я думаю, что autodesk maya и adobe photoshop могут использовать qt для своего gui's
  • qt4 имеет больше, чем просто GUI-программирование, то есть он имеет библиотеки для сетей, интернационализации, фононов для видео и аудио, анимации и т.д. и т.д.

Недостатки

  • это не родная библиотека, поэтому ваше приложение будет больше, чем если бы вы использовали win32 api, но даже тогда я все еще думаю, что это меньше, чем время выполнения .net

Чтобы начать обучение qt сейчас

  • найти книгу программирования С++ gui с использованием qt4 второго издания. или другой хороший ресурс
  • скачать qt sdk для визуальной студии 2008
  • загрузите добавление visual studio qt для визуальной студии 2008
  • создайте новый проект qt4 и скомпилируйте и запустите свой первый проект

С#

Я должен с самого начала заявить, что я не разработчик С#, но я знаю, что у него есть хорошие вещи.

Известные преимущества

  • позволяет использовать формы Windows, wpf, linq (языковой интегрированный запрос) и т.д.
  • wpf - это то, что вас больше всего интересует как разработчик С#

Недостатки

  • как и все языки .net, он все еще медленнее, чем собственные приложения, сделанные в С++
  • не переносится в разные операционные системы, такие как mac osx, linux (но помните, что САМЫЕ ПОЛЬЗОВАТЕЛИ (90%) ОСНОВАНЫ ОКНАМИ)
  • Если вы нацеливаете пользователей на windows xp, вам придется неудобно их загружать .net, чтобы ваше приложение работало. Для меня это самый большой недостаток языков .net, поскольку большинство пользователей, которых я знаю, имеют медленные интернет-соединения.

Чтобы начать изучение разработки gui с помощью С#

  • найдите открытую презентационную базу окон книги или любую хорошую книгу С#/wpf.

Предупреждение

  • Я не эксперт в С++ или С#, и просто даю свое мнение или опыт.
  • У меня ограниченный опыт работы в С#

Ответ 2

Я рассматриваю использование С#, поскольку я взял классы в VB.NET и использовал winforms совсем немного. Тем не менее, я бы хотел использовать С++, каковы ваши мысли?

Если вы хотите использовать Windows Forms и С++, тогда вы можете использовать С++/CLI (ранее известный как Managed С++). Это использует расширения для С++ для поддержки .NET и является единственным языком .NET, который позволяет использовать смешанный CLI и собственный код, поэтому, как только вы приклеиваете код интерфейса к вашему коду приложения, вы можете использовать только ISO С++.

Тем не менее, за исключением тех случаев, когда я реализую интерфейс для существующего кода на С++, мне было проще просто изучить С#, который разработан с нуля, чтобы быть языком .NET, поэтому он, как правило, гораздо удобнее.

В арене ISO С++ варианты включают Qt и WxWidgets, оба из которых являются кросс-платформенными и хорошо поддерживаются книгами и онлайновой информацией и сообществами.

Ответ 3

Я использовал WxWidgets до (С++). Это легко и весело. Afaik, значительная часть дизайна пользовательского интерфейса выполняется с помощью редакторов дизайна или различных импортеров XML/LUA, поэтому набор инструментов, который вы используете, по сути, не имеет особого значения, потому что код, управляемый событиями, будет очень похож на почти все.

Учебники WxWidgets великолепны, и форумы полезны. Если вам интересно, как WxWidgets сравнивается с другими инструментами, у них есть отличная страница wiki, посвященная этому

Ответ 4

Другой вопрос, ответы которого могут обсуждаться на вечность. По моему опыту, я бы сказал, что оба языка имеют одинаково зрелые инструментальные средства для создания пользовательских интерфейсов.

Следовательно, для любого проекта это зависит только от ваших предпочтений. Как правило, разработка пользовательского интерфейса с использованием .NET проще из-за фантастической поддержки RAD, предоставляемой Visual Studio, которая, к сожалению, не обеспечивает такого уровня сложности для проектов на С++.

Сказав, что имейте в виду, что пользовательские интерфейсы существуют во всех операционных системах; а не только Windows. Следовательно, вы должны сосредоточиться на основных принципах программирования GUI и относиться к языку только как к способу исполнения своих мыслей.

Следовательно, если вы действительно хотите программировать пользовательский интерфейс на всех платформах; то С++ - лучший выбор (конечно, в эти дни у вас есть Mono, но не уверен, есть ли у них инструментарий на основе QT, на который вы смотрите).

Довольно глоток - но сделать это коротко: Это все о вашем выборе и обучении. Если вы хотите изучить С# и использовать его, продолжайте. Но если вам нравится С++, вы все равно можете использовать его, и в С# ничего не может быть сделано, но не может быть выполнено с помощью С++.

Ответ 5

Ну, я не мог бы дать лучший ответ, чем Dr.Deo, но я могу поделиться своим домом. Раньше я делал много графического программирования (более 5 лет назад, с Borland VCL в Delphi или С++). Недавно мне пришлось создать графический интерфейс для небольшого проекта, поэтому я пошел на Qt4. Я смог почти полностью завершить графический интерфейс за один день без предварительного знания Qt4 (конечно, это был простой графический интерфейс с одним окном). Я нашел его очень простым в использовании и быстрому обучению. Если у вас есть какой-либо GUI-опыт, он будет очень интуитивным. Что касается знания С++, то оно минимальное. Вы должны быть довольны справедливой дозой наследования и полиморфизма, но это очень характерно для инструментов GUI, и это действительно просто базовое знание ООП на С++.

Я думаю, что некоторые люди уже говорили о том, чтобы быть кросс-платформенными. Это будет все более и более важным в будущем, поскольку альтернативы Windows становятся основными (в основном, все люди, с которыми я работаю, либо имеют Mac, либо используют дистрибутив Linux), и поскольку появляется больше продуктов между телефоном и планшетным ПК.

И, в любом случае, язык, который вы используете для программирования графического интерфейса, на самом деле не так важен, это набор инструментов. Я думаю, Qt4 очень полна. Это также избавит вас от необходимости взаимодействовать с вашим существующим кодом (не говоря уже о обучении С#). Наконец, Qt4 очень удобно использовать с любой системой IDE или сборки (если вы не хотите переключать свой код на qmake и/или Qt-Creator).

Ответ 6

Это зависит от того, что вы пытаетесь изучить.

Если вы хотите узнать, как работают библиотеки GUI, а не как их использовать, вы хотите посмотреть на простой Win32.

Если вы хотите узнать, как их использовать, вы обнаружите, что С# или VB с WinForms легче всего подбирать. И, конечно же, они позволяют использовать великолепного дизайнера.

Не беспокойтесь о проблемах, таких как кросс-платформа, пока вы изучаете основы! Вы должны сосредоточиться на принципах обучения, а не на конкретных особенностях.

Ответ 7

Как сказал @David Heffernan, не беспокойтесь о кросс-платформе, если вы не должны ее иметь (преждевременная оптимизация). Существует плата за такую ​​гибкость, которую предлагают большинство наборов кроссплатформенных платформ. Кроме того, благодаря моему многолетнему опыту как разработчика, так и пользователя, инструментальные средства для собственных плат обычно предлагают лучший опыт работы с конечным пользователем (часто меньше сюрпризов о том, что и как пользователю разрешено и не разрешено делать с каждым элементом управления или поверхностью).

В учебной среде вы хотите рассмотреть, что вы надеетесь выполнить в семестре. Типичный трехмесячный график семестра с последующими вехами предполагает, что вам понадобятся низкие трения. Изучение библиотеки gui может стать отличным достижением, но вы, вероятно, захотите познакомиться с по крайней мере средой или контекстом, прежде чем приступить к работе, чтобы своевременно завершить промежуточные задания: предположительно взаимодействия и вообще общий пользовательский интерфейс лежат в основе фокуса класса.

По этим причинам я бы подумал о том, чтобы придерживаться С++, поскольку у вас есть смысл для парадигмы и основ языка и инструментов. Но, поскольку это учебная среда, я бы сильно подумал о чем-то менее распространенном, но созрел с потенциалом в библиотеке. Я мог бы посмотреть на аппаратные ускоренные библиотеки окон, либо на основе xgl, либо на OpenGl, если они нацелены на unix/linux или Windows Presentation Foundation, если они предназначены для Windows.

Ответ 8

Для программирования графического интерфейса вы можете использовать Visual С++.

Трудно закодировать все в VС++, чтобы люди шли на MFC. MFC обеспечивает 100 классов, которые значительно облегчают жизнь. Итак, все, что вам нужно сделать, это изучить основы VС++ и изучить MFC.