FLTK

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск
FLTK
Типбиблиотека элементов интерфейса (виджетов)
ЯПC++
ОСКроссплатформенное ПО
Релиз1998
ЛицензияGNU Lesser General Public License
Сайтfltk.org

FLTK (произносится как «фултик»; сокр. от Fast, Light Toolkit) — кросс-платформенная библиотека инструментов с открытым исходным кодом (лицензия LGPL) для построения графического интерфейса пользователя (GUI).

Особенности

FLTK представляет собой библиотеку виджетов и работает на ОС UNIX/Linux X11, Windows и MacOS X.

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.

История

Изначально разрабатывалась Биллом Спицтаком (Bill Spiztak). FLTK начал разрабатываться как замена библиотеке XForms, а позднее был портирован на Mac OS и Windows. FLTK появился раньше, чем др. популярные библиотеки для создания GUI, но был практически неизвестен до 1998 года.

Вариации

Малый объём библиотеки делает её подходящей для использования во встраиваемых системах. Для встраиваемых систем на основе 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

Использование

См. также

Шаблон:Инструментарии виджетов