From Wikipedia, the free encyclopedia
Fast Light Tool Kit (FLTK, произнася се „фултик“)[1] е мулти-платформена библиотека за създаване на графичен потребителски интерфейс (GUI), разработена от Бил Спитзак и други. Създадена за пресъздаване на 3D графики, има интерфейс към OpenGL, но също така е подходяща за общото GUI програмиране.
FLTK | |
Информация | |
---|---|
Начална версия | 1998 |
Програмен език | C++ |
Операционна система | Unix-Linux-BSD (X11), OS X, Windows, AmigaOS 4 |
Вид софтуер | Widget toolkit |
Лиценз | GNU Lesser General Public License (с изключение позволяващо static linking) |
Уебсайт | www.fltk.org |
FLTK в Общомедия |
FLTK използва своите собствени системи за рисуване и реагиране към събития, въпреки че FLTK2 придобива експериментална поддръжка на графичната библиотека cairo), което позволява писането на програми, които изглеждат еднакво независимо от операционната система на която работят.
FLTK е свободен софтуер, лицензиран под LGPL с допълнителна клауза, позволяваща статично свързване от приложения с несъвместими лицензи. Тя включва FLUID (FLTK User Interface Designer), графичен GUI дизайнер, който възпроизвежда C++ код.
В контраст с библиотеки като Qt и wxWidgets, FLTK използва по-лек дизайн и има по-ограничен набор от елементи. Поради това, библиотеката е много лека (Една FLTK Hello World програма е около 100 KiB), и обикновено е статично свързана. В библиотеката също така се избягват сложни макроси, отделни предпроцесори, и липсва поддръжка за следните напреднали C++ функции: темплейти, изключения, RTTI и (единствено за FLTK 1.x) namespaces. В комбинация със скромните размери на библиотеката, това води до относително кратък период на обучение за нови потребители.
Тези предимства идват със съответните недостатъци. FLTK предлага по-малко елементи, отколкото повечето GUI библиотеки. Фактът, че FLTK използва само собствени елементи, може да пречи на програмата да се „слее“ със стила наложен от операционната система.
FLTK първоначално е проектиран да бъде съвместим с библиотеката Forms, написана за SGI машини (Производна на тази библиотека все още се използва често под името XForms). В тази библиотека всички функции и структури започват с fl_. Това наименование продължило да се използва за всички нови функции и елементи в C++ библиотеката. Така представката FL е взета за име на библиотеката. След като кодът на FL започва да се разпространява като свободен, се установява, че е невъзможно библиотеката да се намира лесно от интернет търсачките, поради факта, че FL е също така съкращение и за Флорида. След много дебати и търсене за ново име за библиотеката, която по това време е използвана от няколко души, Бил Спитзак я кръщава FLTK, което е съкращение от Fast Light Tool Kit.[2]
FLTK е проектиран за, и написан на програмния език C++. Въпреки това FLTK може да се използва и с други езици, сред които са Perl,[3] Python,[4] Lua[5] и Ruby.[6]
Следващият пример за FLTK 1.x възпроизвежда прозорец с Okay бутон
#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, с много новости и по-чист стил на програмиране, но така и не достига стабилност и работата по него е почти спряна
Това е бил опит да се вземат някои от най-добрите черти на 2.0 и да бъдат сляни с по-популярния клон 1.1. Работата по този клон е спряна.
Това е клонът, по който се работи най-активно. Проектът не е толкова амбициозен колкото 2.0 е бил преди време.
Този клон е модел за бъдеща разработка
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.