Язык программирования с графическим интерфейсом
Обзор графических библиотек C++
Графические библиотеки для C++ позволяют сделать разработку UI приложений максимально быстрой и удобной. Рассказываем, на какие стоит обратить внимание.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
SFML (Simple and Fast Multimedia Library) — одна из самых удобных и быстрых графических библиотек для C++. Её неоспоримое преимущество — минимальные требования к уровню знаний языка и лёгкость освоения: всего за несколько дней можно написать вполне полноценную программу. К примеру, первое графическое приложение «SFML works!» можно написать всего за минуту. Ещё одно преимущество — кроссплатформенность: SFML работает под Windows, Linux (только X11, но не Wayland) и Mac OS, планируется выход под Android и iOS.
SFML библиотека используется по большей части небольшими стартапами и программистами, для которых создание игр — хобби. SFML популярен среди небольших команд благодаря тому, что разработка графической части программы не требует написания больших объёмов кода.
Qt представляет собой целый набор инструментов для быстрого и удобного проектирования GUI. Конечно же, здесь можно писать и игры — почему бы и нет? — но Qt привлекает программистов в основном тем, что она является быстрой, удобной, гибкой и кроссплатформенной. Во многом Qt обогнала даже SFML: библиотека доступна как на Windows, Linux и Mac OS, так и на мобильных платформах — Windows Mobile, Android и iOS.
Qt расширяет C++ с помощью МОК (Мета-объектного компилятора) и предоставляет дополнительные функции (например, сигналы и слоты). Также имеет платную службу поддержки (как и платную лицензию). Для Qt есть большой выбор IDE: QtDesigner, QtCreator, QDevelop, Edyuk, а также доступна интеграция с Visual Studio, Eclipse и XCode.
Qt является open source продуктом, в разработке которого можно принять участие. О других open source проектах для C++ читайте в нашей статье.
Вы можете пройти готовый курс по данной библиотеке.
Cairo
Cairo — библиотека для отрисовки векторных изображений под Linux, Windows и Mac OS. К примеру, такой крупный проект, как Mozilla, использует Cairo в браузерном движке Gecko. Также Cairo лежит в основе некоторых операционных систем (MorphOS, AmigaOS) и приложений (InkScape, Synfig, Graphite). При использовании библиотеки будьте готовы к отсутствию русскоязычных ресурсов.
Cairo может взаимодействовать с OpenGL бэкендом с поддержкой GPU, что, конечно, открывает целый список полезных функций.
Cocos2D-X
Кроссплатформенная библиотека Cocos2D-X призвана упростить разработку мобильных игр. Поддерживает все те же платформы, что и Qt. Из плюсов стоит отметить доступность, удобство эксплуатации и создание отдельного конструктора игр, основанного на библиотеке Cocos Creator. В списке игр, основанных на движке, есть всемирно известная BADLAND, работающая на всех доступных платформах.
Если при создании игры вам нужно работать с графикой и анимацией в больших объёмах, то лучше использовать Unity вместо Cocos2D-X. Unity имеет возможность плавной интеграции с такими инструментами, как Photoshop, Maya или Blender. В Cocos2D-X вся графика добавляется извне и на неё ссылаются из кода.
В Рунете нет уроков по этой библиотеке, но на английском языке есть отличный курс от разработчиков.
Juce — кроссплатформенный фреймворк, предназначенный для создания приложений и плагинов на языке C++.
Документации по Juce много, но не на русском языке. Поэтому можно скачать книгу «Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах».
Juce больше популярен среди разработчиков аудио — ПО благодаря набору интерфейсов-оболочек для построения аудио плагинов.
wxWidgets
wxWidgets — одна из старейших, но в то же время наиболее известных графических библиотек для отрисовки GUI. Её основной плюс — производительность. Если QT использует низкоуровневый код лишь для таких элементов, как кнопки и полосы прокрутки, то wxWidgets для каждой системы свой, и благодаря этому все элементы отображаются максимально похожими на системный стиль.
Важная особенность wxWidgets заключается в использовании «родных» графических элементов интерфейса операционной системы везде, где это возможно. Это существенное преимущество для многих пользователей, поскольку они привыкают работать в конкретной среде, а изменения интерфейса программ часто вызывают затруднения в их работе.
В Сети есть урок по работе с библиотекой от её разработчиков.
SDL 2.0
SDL — кроссплатформенная 2D-библиотека, предназначенная для написания приложений (в основном игр). Поддерживаются Windows, Linux, Mac OS, а также Android, Windows Mobile и iOS. Преимущества библиотеки — быстрота, надёжность и лёгкость в эксплуатации. Также в библиотеке реализованы профессиональные инструменты для работы со звуком — это большой плюс при разработке крупных проектов.
Комбинируется с wxWidgets и хорошо интегрируется с OpenGL.
Существует целый цикл уроков, размещённый на Habr.
Пожалуй, одна из самых известных графических библиотек. GTK+ — графический фреймворк, широко применяемый во многих системах. Изначально он задумывался как компонент GIMP, но за 20 лет после выпуска первой стабильной версии он нашёл применение в сотнях других приложений.
Сейчас GTK+ — это полноценный графический фреймворк, не уступающий тому же QT. Он поддерживает разные языки программирования и продолжает развиваться.
В своё время библиотека создавалась в качестве альтернативы Qt, которая была платной. GTK+ — один из немногих фреймворков, которые поддерживают язык C. Библиотека кроссплатформенная, но есть мнение, что программы на Linux выглядят более нативно, чем на Windows или Mac OS (GTK+ хорошо поддерживается даже на KDE). Интересно, что из-за некоторых проблем с кроссплатформенностью Wireshark перешла на Qt.
Пример первой программы можно посмотреть на Википедии.
Fast Light Toolkit
FLTK (произносится как «фуллтик») — графическая библиотека, которая работает на Windows, Linux (X11) и Mac OS. Поддерживает 3D графику с помощью OpenGL и имеет встроенный GLUT симулятор. Есть встроенный софт для создания интерфейсов — FLUID. Документация по библиотеке находится здесь.
Nana — это кроссплатформенная библиотека для программирования GUI в стиле современного C++. Поддерживаемые системы: Windows, Linux (X11) и Mac OS (экспериментально). Поддержка С++11\17 даёт возможность использовать современные фичи C++: лямбды, умные указатели и стандартную библиотеку. Так как это не фреймворк, использование Nana не будет оказывать влияния на архитектуру программы.
Здесь можно посмотреть документацию и примеры.
Заключение
Всегда следует учитывать особенности той или иной технологии. Выпишите список функций своего приложения, ещё раз прочитайте описания всех графических библиотек C++, и только после этого выбирайте то, что подойдёт вам больше всего.
Языки программирования для написания GUI-приложения
Вы можете отменить свой вопрос: какие инструменты имеются, и какие языки они поддерживают?
Пример GTK: (из wikipedia)
Вы можете найти поддержку для многих языков, если вы изучите эти другие инструменты для виджета:
Python – отличный вариант для просмотра с PyQT и wxPython в качестве двух широко используемых фреймворков для графических приложений для ПК.
И это только те, которые я мог придумать с головы.
Ну, вы сказали windows и linux, так что вы всегда можете вернуться на С++. С ним сделано множество хороших приложений для настольных компьютеров.
Ruby Shoes. Это самый красивый API, который я когда-либо видел, и он работает на Windows, OS X и Linux.
Любой язык, обеспечивающий доступ к интересующим вас графическим интерфейсам.
Если вы хотите использовать Ruby, попробуйте FXRuby.
Это действительно зависит от многих факторов, так или иначе, если вы хотите использовать многоплатформенное приложение с собственным пользовательским интерфейсом, я предлагаю вам комбинацию wxWidgets и C/С++ (я использую прямо сейчас).
Сам язык является “OO VB”. Не совсем VB.NET, но очень похоже. Лично мне не нравится этот язык, но как среда для разработки графических приложений, это очень важно. У него есть некоторые ошибки, но еще быстрее обходить ошибки, чем реализовывать один и тот же интерфейс на 2 или 3 целевых платформах (если ваше приложение не является огромным проектом, который оправдывает создание собственной GUI-инфраструктуры).
Я бы, вероятно, оставил тяжелую работу над внешними компонентами, написанными на C/С++, но у него есть полноценные и очень функциональные API, включая все, от высокоуровневого SOAP-клиента до сырых TCP-сокетов, а также 2D и 3D (включая поверхность OpenGL) API.
Вы также можете использовать Mono – и использовать С#, например, – но с GTK вместо WinForms, используя Mono Develop (I предположите, что это технически это не “.NET”, но вы, возможно, уже рассмотрели его). Для приложений с графическим интерфейсом он довольно зрелый в Windows и Linux, до тех пор, пока вы создаете свое приложение с обеих сторон с самого начала.
Erlang и его привязки к Wx.
Я не встречал язык, на котором не было привязки к некоторому набору инструментов GUI: если люди заботятся о языке, они строят привязки.
Одна важная вещь, которую следует учитывать, – это ваш предыдущий опыт, который не является второстепенной темой, потому что освоение языка программирования требует времени.
Сказал так, я люблю Smalltalk в любом вкусе, поэтому вы можете выбрать (в мире Smalltalk):
Они являются основными Smalltalk и называются в определенном порядке.
В зависимости от того, как вы определяете приложение GUI.
Вы можете использовать HTML/Flash/Flex/JavaScript для создания приложения Adobe AIR, которое может работать как обычное приложение.
Какой язык программирования изучить новичку для написания GUI приложений?
Python весьма неплох для всяких GUI, работаеет со многими популярными фреймворками(Qt,GTK,Kivy), не проблема нагуглить нужный код. И приложение можно легко перетащить под Linux(даже под андроед можно).
После освоения Python, можно приступать к освоению C++
В свое время когда я начинал программировать с QBasic`а и TurboPascal`a, особых вариантов куда дальше развиваться не было: С++. Реальный язык для решения реальных задач.
Для работы с GUI в Win логичным продолжением было Delphi и С++Builder. MFC от M$ был настолько корявый (по моему мнению), что даже смотреть в его сторону не хотелось.
В общем, в моем случае мне сильно помогло, что я начинал с С++. Но работаю я все же в основном в C#. Как бы не получилось так, что начав с С#, как с более простого, вашему знакомому будет потом сложновато в редких задачах, где понадобиться навыки работы в С++.
Совет, наверное, стоит сделать такой: изучайте С# для GUI, попробуйте для развлечения поковыряться с микроконтроллерами: там где реально нужно будет самому на С++ писать. Можно, например, для ардуино на с++ писать: и паять не нужно ничего, и стоит недорого. Не скетчи, а именно разобраться как с С++ работать.
А еще смотрите другие языки: JavaScript, Python, функциональное что-нибудь. Главное чтоб мозги не костенели в какой-нибудь одной парадигме, а могли смотреть на задачу максимально широко.
Тема 8.Основы визуального программирования
Цель
Познакомиться с принципами и основами технологии визуального программирования.
Задачи
Оглавление
Средствами визуального программирования обычно решают задачи построения пользовательского интерфейса и упрощения разработки приложения путем замены метода «написания программы» на метод конструирования.
Концепция визуального программирования реализована во многих современных средах разработки программных систем. Все ведущие фирмы, создающие средства для программирования и конструирования имеют системы, поддерживающие технологию визуального программирования.
Так, например, фирма IBM наиболее полно реализовала концепцию визуального программирования в среде VisualAge Smalltalk.
VisualAge представляет собой объектно-ориентированное средство разработки, включающее набор визуальных интерактивных инструментов, библиотеку готовых компонент и набор средств для построения клиент-серверной среды.
Поддержка графического интерфейса, предоставляемая готовыми компонентами, отвечает CUA (Common User Access) спецификациям и содержит ряд расширений для организации гибкого ввода-вывода в сложных формах и таблицах. Библиотека готовых компонент предоставляет также поддержку устройств мультимедиа, коммуникаций через протоколы APPC, TCP/IP, NetBIOS, программных интерфейсов CICS External Call Interface, EHLLAPI, Message Queue Interface (MQI), работу с реляционными базами данных семейств DB2, Oracle, Sybase и многое другое.
Фирма Microsoft, разрабатывая концепцию.NET Framework, создала Visual Studio.NET Enterprise Architect 2003, в которой реализовала все последние достижения в области программирования и в частности, в технологии визуального программирования.
Фирма Borland Software Corporation является первой компанией, открывшей независимый путь к.NET с Delphi 7, межплатформенной средой быстрой разработки приложений (RAD) для платформы Windows. Характерной чертой Delphi 7 является возможность разработки и развертывания корпоративных приложений. Это позволяет разработчикам создавать корпоративные приложения, от концепции к готовому продукту, еще быстрее с использованием нового UML™-дизайнера и технологии Model Driven Architecture™ (MDA™).
Мы рассмотрели роль и место визуального программирования в области современного программирования. Теперь перейдем к рассмотрению конкретных приемов и методов, относящихся к визуальному программированию. Рассмотрим использование компонентов и приемов визуального программирования в рамках Visual Studio.NET Framework фирмы Microsoft.
Основы визуального программирования
Сегодня принято визуализировать интерфейсы программного обеспечения. Визуализация снимает проблемы «общения» пользователем с программным продуктом. Графические изображения на элементах управления позволяют пользователю интуитивно разбираться в назначении этих элементов.
Возможно, именно наличие визуальных средств построения интерфейсов в таких языках, как Microsoft Visual Basic и Delphi, а также создаваемые с помощью этих языков визуальные программные интерфейсы, закрепили за ними термин «визуальное программирование». Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows.
Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.
Обычной практикой является визуализация работы с элементами интерфейса, когда в качестве объектов визуализации рассматриваются визуальные компоненты, из которых состоят формы (окна и диалоги) интерфейса программы. Но и операторы программы можно рассматривать как объекты визуализации. В этом случае параметры операторов и функций программы можно настраивать при помощи окна свойств (PropertyBox), а сами операторы и функции хранится в списковой форме (табличной форме).
Рис.8.1. Визуализация разработки кода программы
Рис.8.2. Средства визуального программирования
Другим примером визуализации создания кода программы может служить процесс создания макро программ в Microsoft Excel (рис.8.3).
Рис.8.3. Диалог MS Excel при автоматической записи действий пользователя
Визуализируемой моделью в данном случае является рабочий лист Excel, в котором программист выполняет действия по обработке данных. Программный код пишется автоматически в фоновом режиме, при этом происходит описание в операторах языка VBA (Visual Basic for Application) всех визуальных действий пользователя.
Окно свойств Properties присутствуют, но не в самом рабочем листе, а в среде VBA (рис.8.4). Окно инструментов при выборе объекта Module выключается, но в случае редактирования программного кода для каждого программного объекта появляется раскрывающийся список со свойствами, методами и событиями, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса.
Пример получаемой программы, вызов которой в рабочем листе Excel можно организовать по командной кнопке или непосредственно по имени записанного макроса, приведен на рис.8.4.
Рис.8.4. Результат автоматической записи программного кода как протокола действий пользователя
Применение визуального программирования при построении интерфейса приложения в Visual Studio.Net
Рис.8.5. Визуальное программирование средствами Visual Studio.NET
Методы элементов программируются пользователем «вручную», но и тут имеются визуальные помощники: после двойного щелчка по элементу управления в конструкторе автоматически открывается окно редактора кода и автоматически пишется заголовок процедуры обработки события. Боле того, после набора имени объекта автоматически появляется список свойств и методов объекта (рис.8.6). Таким образом, процесс написания программного кода также частично визуализирован.
Рис.8.6. Визуализация свойств и методов объекта
Кроме элементов управления, как правило, в интерфейсе приложения присутствуют и другие стандартные компоненты, реализация которых также поддержана средствами визуального программирования, например, стандартные диалоговые окна.
Рис.8.7. Пример стандартного диалога
Рис.8.8. Программирование стандартных элементов средствами Visual Studio
Концепция.NET Framework и Visual Studio.NET предоставляют в распоряжение программистов огромную библиотеку объектов, ускоряющую процесс разработки приложений. Многие объекты в этой библиотеке имеют визуальное представление и дают возможность назначения свойств объекта в режиме конструирования с помощью окна Properties или диалогов с мастером-построителем.
Выводы
Визуальное программирование предусматривает создание приложений с помощью наглядных средств.
Средства визуального программирования обычно решают задачи построения пользовательского интерфейса и упрощения разработки приложения путем замены метода «написания программы» на метод конструирования.
Визуальное программирование обладает достоинством наглядного представления информации и гораздо лучше соответствует природе человеческого восприятия, чем методы традиционного, текстового программирования. Однако практически все визуальные средства нуждаются в дополнении функциями, которые не могут быть представлены в виде графических конструкций и требуют текстового выражения.
Концепция визуального программирования реализована во многих современных средах разработки программных систем. Все ведущие фирмы, создающие средства для программирования и конструирования имеют системы, поддерживающие технологию визуального программирования.
Графический язык программирования
Графический язык программирования — язык, предназначенный для написания программы для компьютера или вычислительного устройства, в котором вместо текстового описания алгоритма работы используется графическое. К графическим языкам программирования, с некоторой натяжкой, можно отнести генераторы кода по блок-схемам или Дракон-схемам.
Содержание
Примеры Графических языков программирования
В SFC программа описывается в виде схематической последовательности шагов, объединенных переходами.
Специализированные программные пакеты использующие графические ЯП
Ссылки
Смотри также
Смотреть что такое «Графический язык программирования» в других словарях:
Язык программирования Рубин — Ruby Семантика: мультипарадигмальный Тип исполнения: интерпретатор Появился в: 1995 г. Автор(ы): Юкихиро Мацумото Последняя версия: 1.9.1 … Википедия
Лого (язык программирования) — У этого термина существуют и другие значения, см. Лого. Лого (англ. Logo) Появился в: 1967 Автор(ы): Сеймур Пейперт, Идит Харель Испытал влияние: Лисп … Википедия
Скретч (язык программирования) — У этого термина существуют и другие значения, см. Scratch. Скретч Семантика: событийно ориентированная Класс языка: графический, учебный Тип исполнения … Википедия
Рубин (язык программирования) — Ruby Семантика: мультипарадигмальный Тип исполнения: интерпретатор Появился в: 1995 г. Автор(ы): Юкихиро Мацумото Последняя версия: 1.9.1 … Википедия
Учебный язык программирования — Учебный язык программирования язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC[1] и Паскаль[2]. Из разработанного для обучения языка ABC вырос Python[3]. Популярным языком,… … Википедия
Delphi (язык программирования) — У этого термина существуют и другие значения, см. Delphi. Эта статья о языке программирования. Об интегрированной среде разработки см. Delphi (среда разработки). Delphi … Википедия
Джулия (язык программирования) — У этого термина существуют и другие значения, см. Джулия. Джулия Класс языка: процедурный Тип исполнения: компилируемый (JIT) Появился в: 2009 Автор(ы): Стефан Карпински, Джефф Безансон, Вирал Шах … Википедия
J (язык программирования) — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей … Википедия
S (язык программирования) — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей. У этого термина существуют и другие значения, см. S. S язы … Википедия
Monkey (язык программирования) — У этого термина существуют и другие значения, см. Monkey. Monkey язык программирования, предназначенный для разработки игр на различных платформах, включая настольный компьютер, мобильные и игровые консоли. Сам по себе, язык является… … Википедия