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

Совет для программирования на С++ GUI

Я писал приложения С++ Console/CMD-line около года и хотел бы попасть в приложения для графического интерфейса Windows. Для тех из вас, кто раньше поехал по этому пути, какие советы/советы вы можете мне дать. Пример: хорошие чтения, учебники, тактика подхода и т.д.

Я знаю, что это очень широкий вопрос, но я действительно не знаю, как/с чего начать, тем самым не зная, как правильно задавать этот вопрос.

4b9b3361

Ответ 1

Я настоятельно рекомендую использовать Qt Libraries по нескольким причинам:

  • Рамка свободно доступна для Windows, Linux, MacOS X и нескольких мобильных систем. Начиная с версии 4.5, лицензия LGPL, что в основном означает, что вы можете использовать Qt даже в коммерческих приложениях.
  • дизайн Qt является выдающимся, например. они используют современные шаблоны проектирования и очень последовательный дизайн интерфейса (я не знаю многих других библиотек, которые используют объектно-ориентированные идеи в таком совершенстве). Использование Qt такое же, как использование Boost: оно улучшит ваши собственные навыки программирования, потому что они используют такие красивые концепции!
  • Они бывают кровавыми быстро, например, в рендеринг (из-за разных back-end для OpenGL, DirectX и т.д.). Просто посмотрите это видео, и вы увидите, что можно легко сделать с Qt, но его трудно достичь с помощью родных Windows, Mac или Linux программирование.
  • У них действительно отличная документация, с тоннами обучающих программ и очень хорошей ссылкой. Вы можете легко изучить Qt с данными документами! Документация также доступна в Интернете, так что посмотрите и посмотрите сами.
  • Как упоминалось ранее, Qt кросс-платформенный; у вас есть одна исходная база, которая работает во всех важных операционных системах. Почему вы ограничиваете себя Windows, когда вы также можете бесплатно использовать Mac и Linux?
  • Qt настолько гораздо больше, чем "просто" пользовательский интерфейс; они также предлагают функциональность сети и базы данных, привязки OpenGL, полнофункциональный веб-браузер (на основе WebKit), мультимедийную библиотеку воспроизведения и многое другое.

Честно говоря, я потратил пару лет на разработку программного обеспечения изначально для Windows, хотя я мог быть гораздо более продуктивным.

Ответ 2

Для С++ у вас есть два варианта: "Нативный" или "Управляемый".

Для разработки на родной основе моя команда (в Microsoft, в Windows) использует Библиотека шаблонов Windows. Это работает очень хорошо для нас.

Вы должны изучить основы Win32 и как работает Windowing. Каноническая тема Программирование Windows®

Для управляемой разработки вы можете использовать С++ с Windows Forms. Однако формы окон были вытеснены Windows Presentation Foundation (WPF).

Ответ 3

Большинство оконных библиотек и технологий используют похожие идиомы. Выберите один и изучите его.

Библиотека шаблонов Windows - это очень хороший шпон для Microsoft Windows, когда вы используете С++.

Для кросс-платформенных инструментариев С++ для окон (они работают на Microsoft Windows, а также на других платформах) вы можете попробовать QT или wxWidgets.

Ответ 4

Мой лучший совет для программирования на Windows С++ GUI - это не программирование на языке Windows С++.

Я понимаю, что это крайне неинформативный/smartass-ответ, если он не квалифицирован, поэтому я хочу отметить, что вы не утверждаете, что вам нужно программировать на С++ Windows GUI, но вы хотите "попасть в графический интерфейс Windows" Программы." Если это так, и у вас нет особых причин использовать С++ (то есть гигантскую существующую устаревшую кодовую базу, написанную в MFC или кучу кода на С++, для которой вы хотите создать интерфейс, но это будет больно выставить код .NET), тогда будет намного проще и продуктивнее идти по пути .NET и начать изучать Windows Forms или лучше WPF, используя С# или другой язык .NET по вашему выбору.

Если вам нужно перейти на С++, я бы позаботился о рекомендациях для сторонних инструментов, таких как Qt или wxWidgets, поскольку состояние инструментов программирования C/С++ GUI от Microsoft теперь ужасно.

Ответ 5

Хорошо, для графического интерфейса Windows привыкно ссылаться на MSDN, предполагая, что вы хотите напрямую обращаться к API.

Мой любимый ресурс для изучения основ был theForger tutorial, но есть сотни книг и других сайтов.

Ответ 6

Я думаю, что важное место для начала - ваш инструментарий. Вы отметили этот visualС++, поэтому я предполагаю, что вы смотрите на это, однако помните, что есть другие инструменты, такие как Qt.

Я предлагаю начать с учебники Microsoft.

Ответ 7

+1 для Qt. Я бы поставил документацию в верхней части моего списка требований к системе GUI. Qt имеет отличные документы и там огромное сообщество. Также есть несколько книг об этом. Хорошие документы чрезвычайно важны, если вы работаете в одиночку, и другие члены команды не полагаются. Альтернативами являются wxWidgets, MFC, WTL, FLTK и многие другие. У всех их есть плюсы и минусы. Например, FLTK небольшой и предоставляет только GUI, тогда как Qt и wxWidgets также включают в себя создание сетей, доступ к базе данных и т.д. Qt, похоже, имеет наибольший импульс на момент после выкупа Nokia, например, выпуск Qt Creator, который позволяет разрабатывать приложения за пределами Visual Studio,

Ответ 8

До тех пор, как я работал с С++ в графическом интерфейсе Windows, мое слово всегда избегает С++ в графическом интерфейсе Windows, если у вас нет веской причины, я имею в виду хорошую причину darn, если вам нужна какая-то производительность. С# больше, чем достаточно для 90% случаев, и если вам нужно больше энергии, напишите свою критическую критику в С++ dll и вызовите ее из приложения Windows Forms или WPF. Это сэкономит вам много времени. Тем не менее мое мнение, если у вас есть другое, я полностью уважаю, что

Ответ 9

Первый вопрос: хотите ли вы разрабатывать Free, Open Source для личного использования или для коммерческих приложений на С++?

  • Если вы хотите разработать для личного использования! Затем вы можете пойти с хорошим С++ Toolkit, Framework или API.
  • Если вы хотите разработать GUI-приложение, которое будет открытым или бесплатным. Затем вы можете использовать С++ Toolkits, Frameworks или API, которые имеют GPL или любую лицензию с открытым исходным кодом, которая соответствует вашим потребностям.
  • Даже вы можете создавать коммерческие приложения с инструментами open source, фреймворками или API, имеющими лицензию LGPL.

Второй вопрос: хотите ли вы разрабатывать для Windows, Mac, Unix или Linux? или все это, даже для мобильной платформы?

  • Если у вас есть пользователь Windows, как и я, и я хочу разрабатывать только для Windows, я имею в виду не для кросс-платформы, вы можете пойти с Win32 API, хотя изучение Win32 API сложнее, но дает вам полный контроль над машиной. Поверьте мне, что никакой другой инструмент вы бы не обеспечили полный контроль над машиной. Если вам не нравится Win32 API, по какой-либо причине вы можете пойти с MFC, это еще одна технология от Microsoft, но она не является бесплатной, старой и имеет меньше внимания в течение нескольких дней. Если вы решите разработать платформу .NET, у вас есть С++/CLI, расширение для языка С++ для разработки приложений .NET..NET дает вам безопасность типов, ООП и встроенный сборщик мусора, предоставляет вам все API, связанные с машиной Windows и x86 или x64 в одном пакете. .NET имеет свой собственный мир! Microsoft решила перенести .NET на другие операционные системы, проект Mono - пример... Вы можете разрабатывать почти все виды приложений с помощью .NET.

  • Если вы хотите разрабатывать графические приложения С++ для кросс-платформы, то для вашей помощи доступны Qt, WxWidgets и U ++. Вы можете писать один раз и развертывать в любом месте с этими библиотеками. Для разработки приложений на С++ с легкостью также доступно множество IDE с открытым исходным кодом и раскладок. Обратите внимание: если вы не хотите разрабатывать кросс-платформу, любая библиотека кросс-платформенной системы будет накладным и неизбежным увеличением размера исполняемых файлов.

Является ли ваше знание С++ достаточно хорошим для программирования программных систем?

На самом деле, если ваши знания С++ недостаточно глубоки, и вы не понимаете методы программирования, такие как OOP, Encupsolation, Classes, Interfaces, Types, Programming Patterns и т.д., вы не можете использовать какой-либо инструментарий с полным потенциалом. Не забывайте, что каждый Инструментарий, Framework или API реализован на определенном языке программирования. Если вы хорошо понимаете язык, вы можете использовать инструментарий очень хорошо. Я думаю, вы бы поняли мою точку зрения.

Ответ 10

Отложите в сторону WPF или VС++ или Qt, вы также можете попробовать несколько библиотек, таких как:

OpenFrameworks Обработка ...

существует активный проект по разработке Gui с Openframeworks здесь:
http://www.syedrezaali.com/blog/?p=2172

Ответ 11

Вы знакомы с технологиями Microsoft Visual Studio и .NET? Поскольку вы хотите разрабатывать платформы Windows, почему бы вам не начать с просмотра Microsoft Visual С++ Express Edition. Узнайте немного о доступных инструментах из MS и найдите несколько учебников.