ФЛТК

ФЛТК
Первоначальный выпуск1998 ; 26 лет назад ( 1998 )
Стабильный релиз1.3.9 (9 декабря 2023 г .; 10 месяцев назад [1] ) [±] ( 2023-12-09 )
Предварительный релизexperimental-2022-01 (23 января 2022 г .; 2 года назад ) [±] ( 2022-01-23 )
Репозиторий
  • github.com/fltk/fltk
Написано вС++
Операционная системаUnix-подобный с X11 , macOS , Microsoft Windows , AmigaOS 4
ТипБиблиотека пользовательского интерфейса
ЛицензияGNU Lesser General Public License версии 2 с исключением, разрешающим статическую компоновку [2]
Веб-сайтwww.fltk.org

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

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

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

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

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

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

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

Архитектура

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

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

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

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

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

# включить <FL/Fl.H> # включить <FL/Fl_Window.H> # включить <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 [13] [14] [15] [16] [17] [18]
  • XFDOS, дистрибутив на основе FreeDOS с графическим интерфейсом , портирующий Nano-X и FLTK [19] [15] [16] [18]
  • Agenda VR3персональный цифровой помощник на базе Linux с программным обеспечением на базе FLTK.
  • Amnesia: The Dark Descent от Frictional Games использует FLTK в качестве своего приложения-лаунчера
  • MwendanoWD, Логическая головоломка для персонального компьютера от YPH. [20]
  • Аудио:
    • Fldigi — программное обеспечение для любительской радиосвязи , позволяющее передавать данные и вести текстовый чат с помощью цифровых режимов, таких как PSK31.
    • Giada, лупер, микросеквенсор, программное обеспечение для проигрывания сэмплов, с открытым исходным кодом [21]
    • Prodatum, редактор пресетов синтезатора, использует реалистичный дизайн интерфейса [22]
    • ZynAddSubFX — программный синтезатор с открытым исходным кодом
  • DiSTI GL Studio, инструмент разработки человеко-машинного интерфейса [23]
  • Инженерное дело:
    • ForcePAD — интуитивно понятный инструмент для визуализации поведения конструкций, подверженных нагрузке и граничным условиям [24]
    • Gmsh — генератор конечно-элементных сеток с открытым исходным кодом
    • RoboCIM, программное обеспечение для моделирования и управления работой системы серво-робота и внешних устройств [25]
  • Среда рабочего стола Equinox (EDE)
  • FlBurn — программное обеспечение для записи оптических дисков для Linux [26]
  • Графика:
    • CinePaint , программное обеспечение для глубокой прорисовки, миграция с GTK на FLTK, с открытым исходным кодом
    • ITK-SNAP , программное приложение для сегментации медицинских изображений, с открытым исходным кодом
    • Nuke — программа цифрового композитинга. До версии 5, теперь заменена на Qt
    • Открыть редактор фильмов [27]
    • OpenVSP , параметрическая 3D-САПР с открытым исходным кодом для проектирования и анализа самолетов [28]
    • PosteRazor, программное обеспечение с открытым исходным кодом для печати плакатов для Windows, OS X, Linux [29]
    • Tilemap Studio, редактор тайловых карт с открытым исходным кодом для проектов Game Boy, Color, Advance, DS и SNES [30]
  • SmallBASIC , порт Windows
  • Веб-браузеры:
    • Dillo , Dillo-2 был основан на FLTK-2, отказ от этой ветки FLTK, без официального релиза, был основной причиной запуска Dillo-3, использующей FLTK1.3.
    • В-пятых, воспроизводит функционирование ранней Оперы [31]
    • НетРидер [32]
  • Brain Visualizer: интерактивный визуализатор с открытым исходным кодом для крупномасштабных 3D-моделей мозга. Часть Brain Organization Simulation System (BOSS), разработанной в Университете Стоуни-Брук [33]
  • Менеджеры окон X :

Версии

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

1.0.х

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

1.1.х

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

2.0 ветвь

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

1.2.х

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

1.3.х

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

1.4.х

Текущая ветка разработки. Добавляет больше функций в 1.3. [35]

3.0 ветвь

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

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

Ссылки

  1. ^ https://www.fltk.org/articles.php?L1898.
  2. ^ "Лицензионное соглашение FLTK". Архивировано из оригинала 2001-12-18 . Получено 2020-01-30 .
  3. ^ "Fast Light Toolkit - Fast Light Toolkit (FLTK)". www.fltk.org . Архивировано из оригинала 2020-02-02 . Получено 2020-01-30 .
  4. ^ "Fast Light ToolKit (FLTK) » CppLibs". Архивировано из оригинала 2015-05-18 . Получено 2015-05-13 .
  5. ^ "Статья № 363: Что означает "FLTK"? - Fast Light Toolkit (FLTK)". www.fltk.org . Архивировано из оригинала 2020-07-31 . Получено 2020-01-30 .
  6. ^ "STR #3371: Wayland Display Server Protocol support - Fast Light Toolkit (FLTK)". www.fltk.org . Архивировано из оригинала 2022-11-19 . Получено 2020-08-06 .
  7. ^ "murgaLua homepage". Архивировано из оригинала 2012-07-07 . Получено 2008-12-18 .
  8. ^ "Ссылки: По категориям - Ссылки - Fast Light Toolkit (FLTK)". www.fltk.org . Архивировано из оригинала 2023-03-15 . Получено 2023-04-07 .
  9. ^ "pyFLTK Home Page". pyfltk.sourceforge.io . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  10. ^ "Ruby/FLTK". ruby-fltk.sourceforge.net . Архивировано из оригинала 2023-04-13 . Получено 2023-04-07 .
  11. ^ "fltk - Rust". docs.rs . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  12. ^ "Tcl/Fltk dynamic extension for Tcl". SourceForge . 3 апреля 2013 г. Архивировано из оригинала 7 апреля 2023 г. Получено 7 апреля 2023 г.
  13. ^ "Nanolinux". SourceForge . 8 октября 2016 г. Архивировано из оригинала 11 ноября 2020 г. Получено 15 апреля 2018 г.
  14. ^ "Tiny to the extreme: Nanolinux". 30 ноября 2014 г. Архивировано из оригинала 16 апреля 2018 г. Получено 15 апреля 2018 г.
  15. ^ ab "Интервью с разработчиком Nanolinux". 30 декабря 2014 г. Архивировано из оригинала 16 апреля 2018 г. Получено 15 апреля 2018 г.
  16. ^ ab "Методы искусственного интеллекта". Архивировано из оригинала 1999-04-20 . Получено 2019-08-15 .
  17. ^ "PC HTML Editors". Архивировано из оригинала 2018-04-16 . Получено 2018-04-15 .
  18. ^ ab "Персональная домашняя страница Георга". www.georgpotthast.de . Архивировано из оригинала 2018-08-17 . Получено 2018-04-15 .
  19. ^ «Необыкновенный пример ТЗ!». 12 октября 2012 г. Архивировано из оригинала 16 апреля 2018 г. Получено 15 апреля 2018 г.
  20. ^ "YPH". Архивировано из оригинала 2018-10-27 . Получено 2018-10-27 .
  21. ^ "Giada, hardcore loopmachine". Архивировано из оригинала 2011-09-25 . Получено 2011-09-29 .
  22. ^ "prodatum - официальная домашняя страница". prodatum.sourceforge.net . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  23. ^ "DiSTI GL Studio". Архивировано из оригинала 2012-08-15 . Получено 2010-07-29 .
  24. ^ "ForcePAD". forcepad.sourceforge.net . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  25. ^ "RoboCIM - Программное обеспечение для робототехники". Архивировано из оригинала 2013-05-04 . Получено 2013-06-29 .
  26. ^ "Бесплатное | ПО для записи CD DVD для Linux". flburn.sourceforge.net . Архивировано из оригинала 2023-04-10 . Получено 2023-04-07 .
  27. ^ "Open Movie Editor - бесплатный видеоредактор с открытым исходным кодом". www.openmovieeditor.org . Архивировано из оригинала 2012-05-18 . Получено 2008-04-12 .
  28. ^ "OpenVSP". openvsp.org . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  29. ^ "PosteRazor - Создайте свой собственный постер!". posterazor.sourceforge.io . Архивировано из оригинала 2023-04-07 . Получено 2023-04-07 .
  30. ^ "Tilemap Studio". GitHub . 18 октября 2021 г. Архивировано из оригинала 8 сентября 2021 г. Получено 8 сентября 2021 г.
  31. ^ "Fifth - Home". fifth-browser.sourceforge.net . Архивировано из оригинала 2023-04-14 . Получено 2023-04-07 .
  32. ^ "NetRider". SourceForge . 23 февраля 2016 г. Архивировано из оригинала 7 апреля 2023 г. Получено 7 апреля 2023 г.
  33. ^ "Viz (Brain Visualizer)". GitHub . 25 августа 2021 г. Архивировано из оригинала 8 сентября 2021 г. Получено 8 сентября 2021 г.
  34. ^ "Каковы версии FLTK?". Архивировано из оригинала 2010-06-28 . Получено 2010-07-23 .
  35. ^ ab https://www.fltk.org/articles.php?L825 Архивировано 02.08.2019 на Wayback Machine Снято 5 марта 2017 г.
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=FLTK&oldid=1242219312"