Как сделать графический интерфейс в c
Перейти к содержимому

Как сделать графический интерфейс в c

  • автор:

C/C++ — создание графического интерфейса

Так вот, немного пошарил в нете, понял что есть такие штуки, как WinForms и WPF. Еще так же есть вариант winAPI. И вот тут у меня ступор — где, что и как? Помогите разобраться, какие технологии применяются для создания интерфейсов с пом.С++ в MSVS; что лучше использовать на сегодняшний день? А так же посоветуйте нормальную литературу на этот счет.

Проект в рамках университета (небольшая программка по электротехнике для расчета всяких величин по заданой схеме), если это важно.

И все же повторюсь в своем вопросе: что нужно знать и что нужно изучать, что бы начать писать GUI на С++ с пом. Visual Studio?

Отслеживать
20.2k 6 6 золотых знаков 38 38 серебряных знаков 81 81 бронзовый знак
задан 28 апр 2014 в 12:27
hamsternik hamsternik
521 3 3 золотых знака 9 9 серебряных знаков 29 29 бронзовых знаков

На сегодняшний день лучше вообще не писать графические интерфейсы на C/C++. А для обучения при первой же возможности надо уходить с винды. Если требуют курсач с MSVS, но можете сменить тему курсача на что-нибудь неграфическое — меняйте.

28 апр 2014 в 12:35

WPF — это вообще не про С++. Winforms в общем-то тоже, хотя завести его на С++ можно. Правда, если мне не изменяет память, это будет С++/CLI, что далеко не то же самое, что и собственно С++

28 апр 2014 в 12:35

Согласен, и честно — я бы только «за», к примеру писать на том же python! Но задача, к сожалению, поставлена так, что нужно(!) писать все на С++ (т.к. изучается конкретно этот язык), с использованием инструмента MSVS(вопрос — а Visual studio — это инструмент?). Вот поэтому и встал такой вопрос — что нужно знать для написания GUI с пом.С++ и майкрософтовского продукта.

28 апр 2014 в 12:38

Окей. А для чего WPF? Просто, на сколько я понял, что его можно использовать и для C++. Хотя с гугле почти 100% от общего кол-ва запросов выдает WPF в связке с C#! Ага, на сколько я понял: WinForms == C++/CLI? То есть мне нужно изучить C++/CLI, что бы уметь писать GUI?

28 апр 2014 в 12:40

Есть еще MFC, старый как то, что бывает старым, и лучше бы вам его не откапывать. И WTL, который на слуху и, кажется, я слышал о нем неплохие отзывы.

28 апр 2014 в 12:40

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Самое, что вам ближе — это MFC. WinForms — это не С++, это C++/CLI, который работает на платформе MS .Net Framework.

Беда MFC в том, что это тонкая прослойка над WinAPI там шаг влево-шаг вправо от идеологии фреймворка — пропасть.

Писать годные интерфейсы можно и нужно. Но, к счастью или несчастью, Qt здесь почти безальтернативен. Пусть он превносит в язык расширения в виде сигналов-слотов, как следствие — предобработки исходного кода MOC’ом, но это действительно юзабельный бриллиант в мире C++.

В академических целях, желательно овладевать чистым C++, в разумных пределах — WinAPI. Реальные более-менее сложные, переносимые интерфейсы можно писать wxWidget, GTKmm и иже с ними, just for fun.

Но Qt — это настоящее и будущее C++)

ЗЫ Плагин Qt позволяет писать из-под MSVS. Однако, студия враждебна к юникоду.

Как создавать графический интерфейс программы?

Как вообще создавать графический интерфейс программы?
Допустим написал я калькулятор, в консоли все работает, все прекрасно.А теперь как мне к этой программе сделать кнопки, поля и т.д.?
С чего начать?

  • Вопрос задан более трёх лет назад
  • 20714 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 4

Для начала указали бы ОС и требования, нужна ли кроссплатформенность.

Для Windows: WinAPI, MFC, WTL
Для nix (они же кроссплатформенные): GTK+, QT, wxWidgets
Если хочется еще, поищите, найдете.

Ответ написан более трёх лет назад
Комментировать
Нравится 6 Комментировать
WinAPI.
А вообще можно накидать форму в Visual Studio и привязать к каждой кнопке события.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Николай Турнавиотов @foxmuldercp
Системный администратор, программист, фотограф

Вообще, c++ считается «низкоуровневым» языком для работы с железом, драйверами, оптимизацией по производительности.
Написать на нём gui сложнее, чем на C#, который считается более «простым» языком верхнего уровня, доступ из которого на нижние уровни железа напрямую сложен.

Но никто не мешает сделать из вашего кода библиотеку, которую можно подключать из winforms/wpf графического приложения и дергать нужные функции оттуда.

Ответ написан более трёх лет назад
Нравится 1 1 комментарий

Гибридить код C++ с C# для новичка будет сложнее, чем сделать простенький интерфейс на готовых GUI библиотеках.

Как сделать графический интерфейс в c

Доброго времени суток! В этом уроке мы создадим Ваше первое приложение с графическим интерфейсом в MS Visual Studio. Это будет своего рода «Hello World» для графических приложений. Скажу сразу, что использование Windows Forms — не единственный способ создания графических приложений (приложения с графическим интерфейсом пользователя) для C# программистов, но начать изучение лучше именно с этого. И так, запускаем Visual Studio.

Запустили? Тогда к делу! Идем в главное меню и выбираем пункт «Файл — Создать — Проект», как показано на рисунке ниже.

Создание нового проекта

Создание нового проекта

В появившемся окне:

  • в левой части выбираем «Шаблоны — Visual C# — Windows»;
  • в основной области выбираем элемент «Приложение Windows Forms»;
  • в нижней части окна вводим имя проекта и указываем его расположение на диске.

В общем, как показано на рисунке ниже.

Опции создания проекта

Опции создания проекта

Указали что нужно? Тогда нажимайте на кнопку «OK». Теперь вы должны увидеть примерно следующее (основные области выделены прямоугольниками):

Только что созданный проект

Только что созданный проект

На рисунке выше, я обозначил основные области: область дизайнера (слева вверху), область обозревателя решений (справа вверху) и область свойств (справа внизу). С этими областями, мы будем работать чаще всего.

В области дизайнера, сейчас располагается пустая «форма», это так называемое окно, в данном случае, главное окно нашей программы. В области свойств, отображаются свойства выделенного в дизайнере элемента, в данном случае, нашей формы, ну а область обозревателя решений, содержит файлы проекта, в том числи, относящиеся и к формам (окнам) программы. А теперь, давайте немного изменим нашу форму, и запустим это первое приложение.

Для этого, выделим в дизайнере форму (для этого, можно просто кликнуть левой кнопкой мыши по форме) и перейдем в блок свойств, в котором найдем строку «Text» (слово текст, ищем в левом столбце), как показано на рисунке ниже.

Свойство

Свойство «Text» основной формы приложения

Обратите внимание, в левом столбце указано имя (название свойства), а в правом — его значение.

В данном случае, мы имеем дело с текстовым свойством, и его значение, отображается в заголовке окна, так что, давайте теперь укажем там что-то свое, например, что-то вроде: «Главное окно», как показано на рисунке ниже:

Установка свойства формы

Установка свойства формы

Теперь, можно собрать проект и запустить. Для этого идем в главное меню и выбираем пункт «Сборка — Собрать решение». А потом запускаем приложение, для этого выбираем пункт «Отладка — Запуск без отладки» в главном меню. В результате Вы должны увидеть окно следующее окно.

Окно первого графического приложения

Окно первого графического приложения

В следующем уроке, мы рассмотрим простую работу с дизайнером форм, и настройку элементов графического интерфейса, а на этот урок подошел к концу, мы создали первое графическое приложение, собрали и запустили его.

Разработка пользовательского интерфейса: принципы

И 10 советов по проверке любого интерфейса на дружелюбие к пользователю.

Сергей Ломакин

Дата публикации: 1 мар 2023

Разработка пользовательского интерфейса: принципы

Сергей Ломакин Редакция «Текстерры»

Расскажем, на каких языках программирования создается GUI, надо ли уметь программировать и что для этого нужно вообще. В конце — 10 самых важных советов с принципами разработки пользовательского интерфейса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *