FLTK
FLTK | |
---|---|
![]() | |
![]() | |
Тип | библиотека элементов интерфейса (виджетов) |
Написана на | C |
Операционная система | Кроссплатформенное ПО |
Первый выпуск | 1998 |
Последняя версия | |
Репозиторий | github.com/fltk/fltk |
Лицензия | GNU Lesser General Public License[3] |
![]() |
Fast, Light Toolkit — кросс-платформенная библиотека инструментов с открытым исходным кодом (лицензия LGPL) для построения графического интерфейса пользователя (GUI). FLTK произносится как «фултик»[4].
Изначально разрабатывалась Биллом Спицтаком (Bill Spiztak). FLTK создавалась для поддержки 3D графики и поэтому имеет встроенный интерфейс к OpenGL, но хорошо подходит и для программирования обычных интерфейсов пользователя.
Библиотека использует свои собственные независимые системы виджетов, графики и событий, что позволяет писать программы одинаково выглядящие и работающие на разных операционных системах. В отличие от других подобных библиотек (Qt, GTK, wxWidgets) FLTK ограничивается только графической функциональностью. Поэтому она имеет малый размер и обычно компонуется статически (это исключение из лицензии GNU Lesser General Public License, разрешенное разработчиками). FLTK не использует сложных макросов, препроцессоров и продвинутых возможностей языка C (шаблоны, исключения, пространства имен). Вкупе с малым размером кода, это облегчает использование библиотеки не очень искушенными пользователями.
Однако эти достоинства порождают недостатки библиотеки, такие как меньшее число виджетов, несколько упрощенная графика и невозможность сборки приложения, выглядящего естественно под конкретной операционной системой.
Название
[править | править код]Изначально назывался FL (Forms Library). При переходе в open source выяснилось, что поиск по названию FL практически невозможен — аббревиатура FL также означает штат Флорида. Поэтому пакет был переименован в FLTK (FL Toolkit), позднее ему был придуман бэкроним Fast, Light Toolkit.
История
[править | править код]FLTK начал разрабатываться как замена библиотеке XForms, а позднее был портирован на Mac OS и Windows. FLTK появился раньше, чем другие популярные библиотеки для создания GUI, но был практически неизвестен до 1998 года[5].
Особенности
[править | править код]FLTK представляет собой библиотеку виджетов и работает на ОС UNIX/Linux X11, Microsoft Windows и MacOS X. Малый объём библиотеки делает её подходящей для использования во встраиваемых системах.
Для встраиваемых систем на основе embedded Linux возможны следующие варианты:
FLTK nxlib nano-X (довольно стабильно работает, но есть проблемы с кириллицей)
FLNX — порт FLTK 1.0.7 на nano-X (работает только с версией 0.92)
DirectFB FLTK — порт FLTK на DirectFB собственно сам DirectFB (данная сборка нестабильная, шрифты необходимо инсталлировать как для X11 и указать путь в конфиге)
Пример
[править | править код]Следующий пример для FLTK 1.x создаёт окно с кнопкой «Нажми», и по нажатию заменяет её текст:
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
void
button_callback(Fl_Widget* o, void*)
{
Fl_Button* button = (Fl_Button*) o;
button->label("Уиииии!");
button->redraw();
}
int
main()
{
/**
* Инициализировать окно шириной 300px,
* высотой 200px и названием "Тест".
*/
Fl_Window window(300, 200, "Тест.");
/**
* В блоке между методами begin() и end() объявляем кнопку,
* левый верхний край которой расположен в (10; 150),
* шириною 100px и высотою 30px.
*/
window.begin();
Fl_Button button(10, 150, 100, 30, "Нажми");
window.end();
/* Привязать callback-функцию к кнопке. */
button.callback(button_callback);
/* Показать окно. */
window.show();
return Fl::run();
}
Сборка осуществляется вводом следующей команды в терминале:
g test.cpp -o test -lfltk
Использование
[править | править код]См. также
[править | править код]Примечания
[править | править код]- ↑ https://www.fltk.org/articles.php?L1898 — 2023.
- ↑ https://github.com/fltk/fltk/releases/tag/release-1.3.9 — 2023.
- ↑ FLTK License Agreement . Дата обращения: 8 апреля 2014. Архивировано 8 февраля 2014 года.
- ↑ Fast Light Toolkit (FLTK) (англ.). Архивировано из оригинала 19 августа 2013 года.
- ↑ Article №362: What is FLTK? (англ.). Дата обращения: 29 октября 2008. Архивировано из оригинала 10 марта 2012 года.
Литература
[править | править код]- Бьярне Страуструп. Программирование. Принципы и практика с использованием C . — 2-е издание. — М., СПб., К.: Вильямс, 2016. — 1328 с. — ISBN 978-5 -8459-1949-6.
Ссылки
[править | править код]- fltk.org — официальный сайт FLTK