Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

Значение имени [ править ]

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

Архитектура [ править ]

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

Привязки языков [ править ]

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

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

Для 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  =  новое  Fl_Window ( 330 ,  190 );  новый  Fl_Button ( 110 ,  130 ,  100 ,  35 ,  «Хорошо» );  ш -> конец ();  w -> показать ( argc ,  argv );  вернуть  Fl :: run (); }

Дизайнеры графического интерфейса [ править ]

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

Используйте [ редактировать ]

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

  • Nanolinux , 14 МБ Дистрибутив Linux [14] [15] [16] [17] [18] [19]
  • XFDOS, дистрибутив на основе FreeDOS с графическим интерфейсом пользователя , портировавший Nano-X и FLTK [20] [21] [22] [23]
  • Повестка дня VR3 , Linux -На персональный цифровой помощник с программным обеспечением на основе FLTK.
    • стороннее программное обеспечение Agenda VR3
  • Amnesia: The Dark Descent от Frictional Games использует FLTK в качестве приложения для запуска
  • MwendanoWD , Логическая головоломка для персонального компьютера от YPH. [24]
  • Аудио:
    • Fldigi , программа для радиолюбителей , позволяет передавать данные и текстовый чат в цифровых режимах, таких как PSK31.
    • Giada, лупер, микроконтроллер, программное обеспечение для проигрывателя сэмплов, открытый исходный код [25]
    • Prodatum, редактор предустановок синтезатора, использует реалистичный дизайн интерфейса [26]
    • ZynAddSubFX , программный синтезатор с открытым исходным кодом
  • DiSTI GL Studio, инструмент разработки человеко-машинного интерфейса [27]
  • Инженерное дело:
    • ForcePAD, интуитивно понятный инструмент для визуализации поведения конструкций в зависимости от нагрузки и граничных условий [28]
    • Gmsh , генератор конечно-элементных сеток с открытым исходным кодом
    • RoboCIM, программное обеспечение для моделирования и управления работой серво-роботизированной системы и внешних устройств [29]
  • Среда рабочего стола Equinox (EDE)
  • Программа для записи оптических дисков FlBurn для Linux [30]
  • Графика:
    • Avimator , редактор иерархии Biovision (BVH)
    • CinePaint , программа для глубокой раскраски, переход с GTK на FLTK, с открытым исходным кодом
    • ITK-SNAP , программное приложение для сегментации медицинских изображений, с открытым исходным кодом
    • Nuke , программа для цифрового композитинга. До версии 5, теперь заменен на Qt
    • Открыть редактор фильмов [31]
    • OpenVSP, параметрическое создание эскизов самолетов НАСА, недавно открытый исходный код [32]
    • PosteRazor, программное обеспечение для печати плакатов с открытым исходным кодом для Windows, OS X, Linux [33]
  • SmallBASIC , порт Windows
  • Веб-браузеры:
    • Dillo , Dillo-2 был основан на FLTK-2, отказ от этой ветки FLTK без официального выпуска был основной причиной запуска Dillo-3 с использованием FLTK1.3.
    • В-пятых, повторяет функционирование ранней Opera [34]
    • NetRider [35]
  • X оконные менеджеры :
    • FLWM
    • miwm

Версии [ править ]

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

1.0.x [ править ]

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

1.1.x [ править ]

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

2.0 ветка [ править ]

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

1.2.x [ править ]

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

1.3.x [ править ]

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

1.4.x [ править ]

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

Ветка 3.0 [ править ]

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

См. Также [ править ]

  • GTK
  • gtkmm (привязка GTK к C ++)
  • Набор инструментов FOX
  • IUP (программное обеспечение) - многоплатформенный инструментарий для создания собственных графических пользовательских интерфейсов.
  • Juce
  • Qt (программное обеспечение)
  • Платформа визуальных компонентов (VCF)
  • Набор инструментов для виджетов
  • wxWidgets - кроссплатформенный набор инструментов C ++ виджетов с открытым исходным кодом, разработанный сообществом
  • Окончательный ++
  • Список наборов инструментов для виджетов

Ссылки [ править ]

  1. ^ https://www.fltk.org/articles.php?L1635
  2. ^ «Лицензионное соглашение FLTK» .
  3. ^ "ФЛТК дома" .
  4. ^ "Архивная копия" . Архивировано из оригинала на 2015-05-18 . Проверено 13 мая 2015 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  5. ^ https://www.fltk.org/articles.php?L363+I0+TFAQ+P1+Q
  6. ^ "STR # 3371: Поддержка протокола Wayland Display Server - Fast Light Toolkit (FLTK)" . www.fltk.org . Проверено 6 августа 2020 .
  7. ^ "Языковые привязки GTK" .
  8. ^ "Домашняя страница murgaLua" .
  9. ^ https://www.fltk.org/wiki.php?LC+P139+TC+Q
  10. ^ "Домашняя страница pyFLTK" .
  11. ^ "Домашняя страница Ruby / FLTK" .
  12. ^ "Ящик с документацией FLTK" .
  13. ^ "Домашняя страница Tcl / Fltk" .
  14. ^ "Официальный сайт Nanolinux" .
  15. ^ https://eerielinux.wordpress.com/2014/11/30/tiny-to-the-extreme-nanolinux/
  16. ^ https://eerielinux.wordpress.com/2014/12/30/an-interview-with-the-nanolinux-developer/
  17. ^ "Архивная копия" . Архивировано 20 апреля 1999 года . Проверено 15 августа 2019 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  18. ^ http://sites.utoronto.ca/webdocs/HTMLdocs/PCTOOLS/pc_editors.html
  19. ^ http://www.georgpotthast.de/
  20. ^ https://eerielinux.wordpress.com/2012/10/12/an-extranormal-tk-example/
  21. ^ https://eerielinux.wordpress.com/2014/12/30/an-interview-with-the-nanolinux-developer/
  22. ^ "Архивная копия" . Архивировано 20 апреля 1999 года . Проверено 15 августа 2019 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  23. ^ http://www.georgpotthast.de/
  24. ^ YPH
  25. ^ "Giada, хардкорная лупмашина" . Архивировано из оригинала на 2011-09-25 . Проверено 29 сентября 2011 .
  26. ^ Prodatum
  27. ^ DiSTI GL Студия
  28. ^ ForcePAD
  29. ^ RoboCIM - Программное обеспечение для робототехники
  30. ^ FlBurn
  31. ^ Открыть редактор фильмов
  32. ^ OpenVSP
  33. ^ PosteRazor
  34. ^ Пятый браузер
  35. ^ NetRider
  36. ^ "Какие есть версии FLTK?" . Проверено 23 июля 2010 .
  37. ^ https://www.fltk.org/articles.php?L825 Снято 5 марта 2017 г.
  38. ^ https://www.fltk.org/articles.php?L825 Снято 5 марта 2017 г.

Внешние ссылки [ править ]

  • Официальный веб-сайт