ФЛТК - FLTK

ФЛТК
FLTK shadow.svg
Первый выпуск 1998 ; 23 года назад ( 1998 )
Стабильный выпуск 1.3.7 (25 июля 2021 г . ; 45 дней назад ) [±] ( 2021-07-25 )
Предварительный выпуск 1.4.x-20200821-4c012bd7 (21 августа 2020 г . ; 12 месяцев назад ) [±] ( 2020-08-21 )
Репозиторий
Написано в C ++
Операционная система Unix-подобный с X11 , macOS , Microsoft Windows , AmigaOS 4
Тип Библиотека пользовательского интерфейса
Лицензия Стандартная общественная лицензия ограниченного применения GNU версии 2 с исключением, позволяющим статическое связывание
Веб-сайт www .fltk .org

Fast Light Toolkit ( FLTK , произносится fulltick ) - это кроссплатформенная библиотека виджетов (графического элемента управления) для графических пользовательских интерфейсов (GUI), разработанная Биллом Спицаком и другими. Созданный для программирования трехмерной графики , он имеет интерфейс для OpenGL , но также подходит для общего программирования с графическим интерфейсом.

Используя собственный виджет, системы рисования и событий, абстрагированные от базового системно-зависимого кода, он позволяет писать программы, которые выглядят одинаково во всех поддерживаемых операционных системах .

FLTK - это бесплатное программное обеспечение с открытым исходным кодом , работающее под лицензией GNU Lesser General Public License (LGPL) с добавленным пунктом, разрешающим статическое связывание из приложений с несовместимыми лицензиями.

В отличие от библиотек пользовательского интерфейса, таких как GTK , Qt и wxWidgets , FLTK использует более легкий дизайн и ограничивается функциональностью графического интерфейса. Из-за этого библиотека очень мала (программа FLTK "Hello World" составляет около 100 КиБ ) и обычно статически связана . Он также избегает сложных макросов, отдельных препроцессоров кода и использования некоторых расширенных функций C ++ : шаблонов, исключений и информации о типах времени выполнения (RTTI) или, для FLTK 1.x, пространств имен . В сочетании со скромным размером пакета это позволяет относительно легко изучить его для новых пользователей.

Эти преимущества сопровождаются соответствующими недостатками. FLTK предлагает меньше виджетов, чем большинство наборов инструментов GUI, и из-за использования неродных виджетов не имеет собственного внешнего вида ни на одной платформе.

Значение имени

FLTK изначально был разработан для совместимости с библиотекой форм, написанной для машин Silicon Graphics (SGI) (производная от этой библиотеки под названием XForms все еще используется довольно часто). В этой библиотеке все функции и структуры начинаются с fl_. Это именование было распространено на все новые методы и виджеты в библиотеке C ++, и этот префикс FLбыл взят в качестве имени библиотеки. После того, как FL был выпущен как открытый исходный код, было обнаружено, что поиск «FL» в Интернете был проблемой, потому что это также сокращение от Флориды . После долгих споров и поиска нового названия для набора инструментов, который уже использовался несколькими людьми, Билл Спицак придумал Fast Light Tool Kit (FLTK).

Архитектура

FLTK - это объектно-ориентированный инструментарий виджетов, написанный на языке программирования C ++ . Хотя GTK в основном предназначен для системы X Window , FLTK работает на других платформах, включая Microsoft Windows (с интерфейсом Windows API ) и OS XQuartz ). Вейленд фоновый обсуждаются. FLTK2 получил экспериментальную поддержку для необязательного использования графической библиотеки cairo .

Языковые привязки

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

FLTK был разработан в основном для языка программирования C ++ и написан на нем . Однако привязки существуют для других языков, например Lua , Perl , Python , Ruby , Rust и Tcl .

Для FLTK 1.x в этом примере создается окно с кнопкой ОК :

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>

int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Okay");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

Дизайнеры графического интерфейса

FLTK включает Fast Light User Interface Designer ( FLUID ), графический дизайнер GUI, который генерирует исходные файлы и файлы заголовков C ++ .

Использовать

Многие программы и проекты используют FLTK, в том числе:

  • Nanolinux , 14 МБ дистрибутив Linux
  • XFDOS, дистрибутив на основе FreeDOS с графическим интерфейсом , портированием Nano-X и FLTK
  • Повестка дня VR3 , Linux -На персональный цифровой помощник с программным обеспечением на основе FLTK.
  • Amnesia: The Dark Descent от Frictional Games использует FLTK в качестве приложения для запуска
  • MwendanoWD , Логическая головоломка для персонального компьютера от YPH.
  • Аудио:
    • Fldigi , программное обеспечение для радиолюбителей , позволяет передавать данные и текстовый чат в цифровых режимах, таких как PSK31.
    • Giada, лупер, микроконтроллер, программное обеспечение для проигрывателя сэмплов, открытый исходный код
    • Prodatum, редактор предустановок синтезатора, использует реалистичный дизайн интерфейса.
    • ZynAddSubFX , программный синтезатор с открытым исходным кодом
  • DiSTI GL Studio, инструмент разработки человеко-машинного интерфейса
  • Инженерное дело:
    • ForcePAD, интуитивно понятный инструмент для визуализации поведения конструкций в зависимости от нагрузки и граничных условий
    • Gmsh , генератор конечно-элементных сеток с открытым исходным кодом
    • RoboCIM, программное обеспечение для моделирования и управления работой серво-роботизированной системы и внешних устройств.
  • Среда рабочего стола Equinox (EDE)
  • Программа для записи оптических дисков FlBurn для Linux
  • Графика:
    • Avimator , редактор иерархии Biovision (BVH)
    • CinePaint , программа для глубокой раскраски, переход с GTK на FLTK, с открытым исходным кодом
    • ITK-SNAP , программное обеспечение для сегментации медицинских изображений, с открытым исходным кодом
    • Nuke , программа для цифрового композитинга. До версии 5, теперь заменен на Qt
    • Открыть редактор фильмов
    • OpenVSP, параметрическое создание эскизов самолетов НАСА, недавно открытый исходный код
    • PosteRazor, программное обеспечение для печати плакатов с открытым исходным кодом для Windows, OS X, Linux
    • Tilemap Studio, редактор тайловых карт с открытым исходным кодом для проектов Game Boy, Color, Advance, DS и SNES.
  • SmallBASIC , порт Windows
  • Веб-браузеры:
    • Dillo , Dillo-2 был основан на FLTK-2, отказ от этой ветки FLTK без официального выпуска был основной причиной запуска Dillo-3 с использованием FLTK1.3.
    • В-пятых, повторяет функционирование ранней Оперы.
    • NetRider
  • Визуализатор мозга: интерактивный визуализатор с открытым исходным кодом для крупномасштабных трехмерных моделей мозга. Часть системы моделирования организации мозга (BOSS), разработанной в Университете Стони Брук.
  • X оконные менеджеры :

Версии

Эта история версий является примером порой бурного характера разработки ПО с открытым исходным кодом .

1.0.x

Это предыдущая стабильная версия, в настоящее время не поддерживаемая.

1.1.x

Это предыдущая стабильная версия, в настоящее время не поддерживаемая.

2.0 филиал

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

1.2.x

Это была попытка взять некоторые из лучших функций 2.0 и объединить их обратно в более популярную ветку 1.1. Больше не разрабатывается.

1.3.x

Текущая стабильная версия. Обеспечивает поддержку UTF-8.

1.4.x

Текущая ветка разработки. Добавляет больше возможностей в 1.3.

3.0 филиал

Эта ветка - в основном концептуальная модель для будущей работы. Сейчас неактивен.

Смотрите также

использованная литература

внешние ссылки