Fltk org что это за программа
Здравствуйте, bc_kaya, Вы писали:
_>Добрый день. Появилась ли возможность работать с русским языком в FLTK (Fast Light Toolkit) в 2к19?
А какие проблемы?
У меня студенты 2 курса спокойно залезают внутрь и делают русский язык даже на хрюше. Не говоря уж о линуксе
Хочешь быть счастливым — будь им!
Без булдырабыз.
Re: Русский язык в FLTK
От: | DST | |
Дата: | 10.01.19 07:15 | |
Оценка: | 16 (3) |
Здравствуйте, bc_kaya, Вы писали:
_>Добрый день. Появилась ли возможность работать с русским языком в FLTK (Fast Light Toolkit) в 2к19?
Приветствую. Студент 2 курса, пишу по поручению Лаптева В.В. С однокурсниками мы придумали небольшой фикс, который должен сработать на русскоязычной Windows.
Для этого необходимо взять исходники версии fltk-1.3.4-2 и модифицировать 2 файла.
How to set up FLTK 1.3.5 for Visual Studio 2019 (Community edition)
В файле файле src/fl_draw.cxx на строке 162 добавить следующий код:
if (str)
В файле src/Fl_Window.cxx заменить конструктор на строке 74 на следующий:
Fl_Window::Fl_Window(int X,int Y,int W, int H, const char *l) : Fl_Group(X, Y, W, H, l ? fl_locale_to_utf8(l,strlen(l),1251) : l)
В этом же файле заменить конструктор на строке 82 на следующий:
Fl_Window::Fl_Window(int W, int H, const char *l) // fix common user error of a missing end() with current(0): : Fl_Group((Fl_Group::current(0), 0), 0, W, H, l ? fl_locale_to_utf8(l,strlen(l),1251) : l)
Отредактировано 10.01.2019 7:16 DST . Предыдущая версия .
Re: Еще вопросы есть? :)))
От: | LaptevVV |
Дата: | 10.01.19 07:36 |
Оценка: |
Обращайтесь, если понадобится.
Хочешь быть счастливым — будь им!
Без булдырабыз.
Re: Русский язык в FLTK
От: | niXman | https://github.com/niXman |
Дата: | 10.01.19 08:05 | |
Оценка: | +1 |
Здравствуйте, bc_kaya, Вы писали:
_>Добрый день. Появилась ли возможность работать с русским языком в FLTK (Fast Light Toolkit) в 2к19?
зы
кстати, хорошая либа. использую для всяких тулзов и визуализаций.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: Русский язык в FLTK
От: | LaptevVV |
Дата: | 10.01.19 08:36 |
Оценка: |
Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
Mastering Lua #5 Criação de Interfaces Gráficas com FLTK
Хочешь быть счастливым — будь им!
Без булдырабыз.
Re[2]: Русский язык в FLTK
От: | niXman | https://github.com/niXman |
Дата: | 10.01.19 08:43 | |
Оценка: |
Здравствуйте, LaptevVV, Вы писали:
LVV>Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
круто, конечно.
но вместо всего того что там написано и сделано, нужно было просто предоставить patch =)
а еще лучше — предложить его разрабам, если описанная проблема действительно существует и этот patch ее бы решал =)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: Русский язык в FLTK
От: | bc_kaya |
Дата: | 10.01.19 08:44 |
Оценка: |
Здравствуйте, DST, Вы писали:
DST>Здравствуйте, bc_kaya, Вы писали:
_>>Добрый день. Появилась ли возможность работать с русским языком в FLTK (Fast Light Toolkit) в 2к19?
DST>Приветствую. Студент 2 курса, пишу по поручению Лаптева В.В. С однокурсниками мы придумали небольшой фикс, который должен сработать на русскоязычной Windows.
DST>Для этого необходимо взять исходники версии fltk-1.3.4-2 и модифицировать 2 файла.
DST>В файле файле src/fl_draw.cxx на строке 162 добавить следующий код:
DST>
DST>if (str) DST> < DST>str = fl_locale_to_utf8(str, strlen(str), 1251); DST>> DST>
DST>В файле src/Fl_Window.cxx заменить конструктор на строке 74 на следующий:
DST>
DST>Fl_Window::Fl_Window(int X,int Y,int W, int H, const char *l) DST>: Fl_Group(X, Y, W, H, l ? fl_locale_to_utf8(l,strlen(l),1251) : l) < DST>cursor_default = FL_CURSOR_DEFAULT; DST> _Fl_Window(); DST> set_flag(FORCE_POSITION); DST>> DST>
DST>В этом же файле заменить конструктор на строке 82 на следующий:
DST>
DST>Fl_Window::Fl_Window(int W, int H, const char *l) DST>// fix common user error of a missing end() with current(0): DST>: Fl_Group((Fl_Group::current(0), 0), 0, W, H, l ? fl_locale_to_utf8(l,strlen(l),1251) : l) < DST>cursor_default = FL_CURSOR_DEFAULT; DST> _Fl_Window(); DST> clear_visible(); DST>> DST>
Спасибо, но это не полностью решило мою проблему
Re[2]: Русский язык в FLTK
От: | bc_kaya |
Дата: | 10.01.19 08:46 |
Оценка: |
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, bc_kaya, Вы писали:
_>>Добрый день. Появилась ли возможность работать с русским языком в FLTK (Fast Light Toolkit) в 2к19?
X>так ведь сделали это.
X>https://www.fltk.org/doc-1.3/unicode.html
X>https://stackoverflow.com/questions/19198848/how-to-display-unicode-with-fltk
X>зы
X>кстати, хорошая либа. использую для всяких тулзов и визуализаций.
Дело в том, что в данном случае, если правильно понимаю, необходимо использовать функцию каждый раз, когда я хочу вывести текст в кириллической кодировке
Хотелось бы иметь возможность работать с русским текстом без написания «лишнего» кода
Re[3]: Русский язык в FLTK
От: | niXman | https://github.com/niXman |
Дата: | 10.01.19 08:48 | |
Оценка: |
Здравствуйте, bc_kaya, Вы писали:
_>Дело в том, что в данном случае, если правильно понимаю, необходимо использовать функцию каждый раз, когда я хочу вывести текст в кириллической кодировке
_>Хотелось бы иметь возможность работать с русским текстом без написания «лишнего» кода
перейдите по второй ссылке, там ведь есть пример вывода кирилического текста на виджете. никаких костылей я там не вижу.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 10.01.2019 8:48 niXman . Предыдущая версия .
Re[4]: Русский язык в FLTK
От: | bc_kaya |
Дата: | 10.01.19 08:52 |
Оценка: |
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, bc_kaya, Вы писали:
_>>Дело в том, что в данном случае, если правильно понимаю, необходимо использовать функцию каждый раз, когда я хочу вывести текст в кириллической кодировке
_>>Хотелось бы иметь возможность работать с русским текстом без написания «лишнего» кода
X>перейдите по второй ссылке, там ведь есть пример вывода кирилического текста на виджете. никаких костылей я там не вижу.
Невнимательно взглянул, прошу прощения =(
Вижу использование u8 =)
Re[2]: Русский язык в FLTK
От: | bc_kaya |
Дата: | 10.01.19 08:54 |
Оценка: |
Здравствуйте, LaptevVV, Вы писали:
LVV>Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
Выглядит интересно, вечерком опробую
Re[2]: Русский язык в FLTK
От: | bc_kaya | |
Дата: | 11.01.19 22:42 | |
Оценка: | 26 (1) |
Здравствуйте, LaptevVV, Вы писали:
LVV>Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
Моё почтение, с пользой потратил время на изучение. Скомбинировав файлы из репозитория и решение вашего студента (как полагаю), получил то, что было нужно
Было б ещё хорошо, если бы кто-нибудь переписал на современный лад библиотеку виджетов, а не заниматься вечной борьбой с const char* =(
Re[3]: Русский язык в FLTK
От: | LaptevVV |
Дата: | 12.01.19 09:49 |
Оценка: |
LVV>>Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
_>Моё почтение, с пользой потратил время на изучение. Скомбинировав файлы из репозитория и решение вашего студента (как полагаю), получил то, что было нужно
_>Было б ещё хорошо, если бы кто-нибудь переписал на современный лад библиотеку виджетов, а не заниматься вечной борьбой с const char* =(
Ну, могу поручить студентам в качестве курсовой.
Наверное и поручу — будет потом как часть его выпускной фигурировать.
Хочешь быть счастливым — будь им!
Без булдырабыз.
Re[4]: Русский язык в FLTK
От: | bc_kaya |
Дата: | 12.01.19 15:07 |
Оценка: |
Здравствуйте, LaptevVV, Вы писали:
LVV>>>Вот проект одного из студентов 3-его курса, выложенный на GitHub: https://github.com/LIQUIDDEATH13/FLTKRUS
_>>Моё почтение, с пользой потратил время на изучение. Скомбинировав файлы из репозитория и решение вашего студента (как полагаю), получил то, что было нужно
_>>Было б ещё хорошо, если бы кто-нибудь переписал на современный лад библиотеку виджетов, а не заниматься вечной борьбой с const char* =(
LVV>Ну, могу поручить студентам в качестве курсовой.
LVV>Наверное и поручу — будет потом как часть его выпускной фигурировать.
Считаю, что «модернизирование» и адаптация к современным реалиям С-шной (как субъективно считаю) библиотеки пойдёт на пользу и её начнут активнее использовать программисты, реализующие оконный интерфейс в своём software
Re[5]: Русский язык в FLTK
От: | LaptevVV |
Дата: | 12.01.19 15:26 |
Оценка: |
LVV>>Ну, могу поручить студентам в качестве курсовой.
LVV>>Наверное и поручу — будет потом как часть его выпускной фигурировать.
_>Считаю, что «модернизирование» и адаптация к современным реалиям С-шной (как субъективно считаю) библиотеки пойдёт на пользу и её начнут активнее использовать программисты, реализующие оконный интерфейс в своём software
Ну, в принципе согласен, но посмотрим.
Работа вообще говоря, профессионального уровня, мож за семестр управимся.
Или за семестр+лето.
Источник: www.rsdn.org
Сравнение производительности UI в WPF, Qt, WinForms и FLTK
Под мерой производительности UI будем понимать количество откликов на действия пользователя в единицу времени. А под откликом — запрашиваемую пользователем реакцию приложения.
Малым временем отклика можно объяснить ряд предпочтений пользователя:
1. Предпочтение аналоговых интерфейсов цифровым (когада возникает задержка на обработке цифрового ввода);
2. На заре Windows, — предпочтения пользователей работать с DOS программами в «текстовом режиме», а с не GUI аналогами в Windows (время отклика в текстовом режиме тогда было заметно меньше на сходной платформе);
3. Предпочтение реальных игровых консолей их эмуляторам (эмуляторы часто имеют время отклика отличное от времени отклика оригинальных консолей);
4. Предпочтение пользователей iOS и Android относительно WinCE и Symbian (среди прочего, например в iOS ставилась цель быстрого отклика и поддержки 60 FPS, Android хотя и не ставил таких целей был заметно отзывчивее WinCE и Symbian);
5. В автомобилях — неоднозначное отношение пользователей к автоматическим коробками передач, электронной педали газа и некоторым другим системам вносящим задержку между управляющим воздействием и реакцией на него (это относится к наименее продвинутым версиям этих решений).
Большое время отклика является по сути «обратной связью с запаздыванием», про которую более подробно можно прочитать тут: «Обратная связь с запаздыванием в кране с горячей водой, марсоходе и демографической пирамиде».
Сравнение производительности
Задержка реакции на ввод пользователя в цифровых системах естественна и неизбежна. Однако в UI для восприятия значение имеют только те задержки, которые пользователь в состоянии ощутить. Например, в восприятии визуальной информации среднестатистический пользователь не способен различить задержки менее 1/60 секунды, поэтому дальнейшее уменьшение времени визуального отклика вряд-ли будет оправдано.
Рассмотрим отзывчивость пользовательского интерфейса библиотек WPF, Qt, WinForms и FLTK. Трудоемко измерить отзывчивость всех контролов этих библиотек, и сложно в каждом случае измерить интервал между вводом пользователя и реакцией контрола на этот ввод. Поэтому, немного упростим задачу оценки.
Тестировать будем один, но сложный, и в целом показательный контрол, присутствующий во всех библиотеках — DataGrid. Отзывчивость будем мерить по FPS в отклике на скроллинг содержимого этого контрола. Для того чтобы избежать подсчета неполных кадров, будем использовать двойную буферизацию.
Во время скроллинга грида, мы так или иначе мы проверим основные механизмы библиотеки отвечающие за реакцию на ввод, рендеринг контролов, текста, обработку визуального дерева контролов, и отчасти композицию. Это даст нам возможность оценить потенциал библиотеки для работы с нагруженным UI.
Для каждой библиотеки я подготовил по тестовому приложению, заполняющих грид данными одинакового вида. Эти данные — 5000 строк по 20 колонок с некой произвольной информацией (считаю такое количество строк и столбцов близким к реальным максимальным потребностям отображения сложных объектов). Я не оптимизировал заполнение грида, поэтому не стоит придавать значения тому, что для некоторых библиотек он заполняется медленно. Производительность будем мерить уже после того как грид заполнен.
Производительность я проверял только под Windows (хотя библиотеки, за исключением WPF кросплатформенны), для проверки был написан счетчик FPS (только для Windows и 32 битной глубины цвета) определяющий изменения кадра по верхней части основного экрана. Погрешность счетчика может быть около 1 кадра.
Методика измерения производительности:
1. Запускаем счетчик FPSCounter.exe.
2. Запускаем одно из тестовых приложений FltkGrid.exe, FormsGrid.exe, QtGrid.exe или WpfDatagridTest.exe и разворачиваем его на весь основной экран (это необходимо т.к. детектируется только изменение верхней части кадра на основном экране)
3. Двигаем бегунок вертикального скроллера грида вверх и вниз до упора, во время движения бегунка смотрим значение FPS в верхнем левом углу экрана или в окне счетчика. (для получения максимальных значений FPS двигать бегунок надо быстро, иначе мы упремся в собственную «производительность», а не в производительность UI)
Измерения FPS я производил на нескольких, оказавшихся под рукой платформах, почти все платформы на Windows 7 x64, другие приложения на время измерений закрывал.
Приложения скомпилированы под х64 платформу. Кроме этого для запуска может потребоваться msvs runtime 2010
Результаты
Ниже приведена таблица с перечнем платформ, на которых запускались измерения и их результатами. В таблице также указана оценка однопоточной производительности платформы (Single Thread Performance) в соответствии с www.cpubenchmark.net.
В дополнение к таблице, хочу добавить что приложения Оffice и например браузер Chrome (на «хороших» страницах) показывают FPS примерно равный FLTK или чуть меньше.
Для более наглядной иллюстрации добавлю график зависимости FPS от оценки Single Thread производительности. График построен на основе данных приведенных в таблице.
График стоит немного прокомментировать. На платформе с оценкой 1000 использовалось низкое вертикальное разрешение экрана, что сильно уменьшило число видимых ячеек, тем самым существенно повысив FPS вертикального скроллирования. Хочу также добавить, что для компиляции FLTK примеров был отключен ряд оптимизаций, поэтому вполне возможно включив их можно несколько увеличить оценки примера FLTK на всех платформах (по этой же причине во время старта примера FLTK появляется окно консоли).
В целом же зависимость FPS от однопоточной производительности процессора достаточно линейна. Есть предположение что многопоточная производительность пока мало применима к UI библиотекам (например, превосходство i7 в многопоточной производительности мало влияет на FPS). Так же измерения показали слабую зависимость FPS в нашем тесте от видеокарты (зависимость безусловно есть, но похоже в данных тестах видеокарта не является узким местом) Еще одной интересной деталью явилось ограничение 30 FPS на ряде платформ. Не уверен связано ли это c драйвером видеокарты или какими-то ее настройками, однако в ряде случаев не удавалось получить более 30 FPS…
Исключительно на основании данных измерений я не могу рекомендовать FLTK, как универсальное средство повышения отзывчивости вашего UI, тем более что писать UI на FLTK весьма трудоемко (на написание FLTK примера у меня ушло около 20ти минут, хотя остальные примеры были написаны заметно быстрее). Однако результаты измерений заставляют задуматься о том, что по многие библиотеки не полностью раскрывают потенциал железа на котором выполняются, делая приложения менее привлекательными для пользователя(с точки зрения отзывчивости по крайней мере).
Буду рад, если подобным образом кто-то протестирует и другие UI библиотеки, предложит вариант оптимизации производительности тестовых примеров (для рассматриваемого случая скроллинга) или же просто расскажет о FPS в тестовых примерах на своей конфигурации.
Как же получить высокий FPS?
Как видно из теста, стабильные 60 FPS, в случае тяжелого UI мы получим разве что на дорогом железе и наиболее затратной в разработке UI библиотеке (то есть дорогим будет и разработка и железо и потребление этого железа), наверное иногда это того стоит, но пока это скорее исключение. Однако, если не вдаваться в крайности и поставить себе целью получить хотя бы 20 FPS в нагруженных информацией интерфейсах. Чего нам это будет стоить?
Для рассмотренных библиотек, вариантов, видимо, не так и много:
1. FLTK + почти самое дешевое железо. На разработку UI мы потратим заметно больше времени, но в текущих ценах сможем сэкономить ~100-200$ на железе на рабочее место пользователя.
2. Qt + среднее железо. На железе сэкономить особо не получится, но зато разработка UI будет дешевле чем в случае FLTK. Вероятно в ряде случаев вариант будет оптимальным.
3. WPF + дорогое железо т.е. дополнительные 200-300$ на рабочее место. Ведь если на i7-3770 мы получаем только 12 кадров, то нужно как минимум железо в полтора раза мощнее. Вероятно i7-5930K или возможно i7-4790K в паре с хорошей видеокартой справятся с задачей 20 FPS. Однако вряд ли это будет эффективное решение, да и справятся ли… к сожалению нет такого железа под рукой чтобы проверить, но если экстраполировать однопоточную производительность то ее оценка должна быть свыше 3000, для получения 20 FPS при 1280х1024… такого железа просто не существует, по крайней мере тут.
4. Облегчать UI, до тех пор пока не уложимся в 20 FPS. Например, если используя WPF, вместо 20ти колонок в гриде оставить только 6, то на i7-3770 мы получим стабильные 20 FPS, если же оставить всего 3-4 колонки, то получим 20 FPS и на бюджетном железе.
Уменьшение размера самого грида также должно дать положительный эффект (правда на разных библиотеках он разный, и как ни странно для случая WPF эффект наименее выражен). Приемлемы ли такие решения? Применимы далеко не везде, но все-таки покрывают ряд задач, не фокусирующихся на представлении данных.
P.S.: Идея сравнить производительность гридов появилась после того, как я столкнулся с низкой производительностью грида WPF. В комментариях к моей предыдущей статье «Выбор между C++ и C#» я, в частности, разбирал эту проблему.
Далее мне стало интересно, как с задачей отображения грида справляются альтернативные библиотеки, так появились тестовые приложения и результаты изложенные в этой статье.
Источник: habr.com
Fltk org что это за программа
Василиса▶ Я жду вашего обращения. Что Вы хотите узнать?
F ast, L ight T ool k it — кросс-платформенная библиотека инструментов с открытым исходным кодом (лицензия LGPL ) для построения графического интерфейса пользователя (GUI). FLTK произносится как «фултик» .
Изначально разрабатывалась Биллом Спицтаком (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 года .
Особенности
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 #include #include 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
Источник: yavix.ru
FLTK
Fast Light Toolkit (FLTK, pronounced full ) — кроссплатформенный виджет (графический элемент управления) библиотеки для графических пользовательских интерфейсов (GUI), разработанный Биллом Жаком и другими. Он создан для программирования трехмерной графики и имеет интерфейс с OpenGL, но также подходит для общего программирования с помощью графического интерфейса пользователя.
Используя собственный виджет, рисование и системы событий, воздерживающиеся от нижележащего системного зависимого кода, он позволяет писать программы, которые выглядят одинаково на всех поддерживаемых операционных системах.
FLTK — это бесплатное программное обеспечение с открытым исходным кодом, лицензированное под лицензией GNU Lesser General Public License (LGPL) с добавленным clause per c, связывающим приложения с несопоставимыми лицензиями.
В отличие от библиотек пользовательского интерфейса, таких как GTK, Qt и wxWidgets, FLTK использует более легкий дизайн и себя функции GUI. Из-за этого библиотека очень маленькая (программа FLTK «H World» составляет около 100 КиБ), и обычно связана. Он также сложные mac, отдельные препроцессоры кода и использование некоторых расширенных функций C++: шаблонов, исключений и информации о типе выполнения (RTTI) или, для FLTK x, пространства имен. В сочетании с самым скромным размером пакета это делает его относительно простым для изучения новыми пользователями.
Эти преимущества имеют соответствующие недостатки. FLTK предлагает f виджеты, чем большинство инструментальных средств графического интерфейса пользователя, и, благодаря использованию сторонних виджетов, не имеет собственного внешнего вида на любой платформе.
Значение названия
Первоначально FLTK был разработан для совместимости с библиотекой Forms Library, написанной для машин Silicon Graphics (SGI) (разновидность этой библиотеки под названием XForms используется до сих пор довольно часто). В этой библиотеке все функции и структуры начинаются с. Это именование было распространено на все новые методы и виджеты в библиотеке C++, и эта префикса была взята за имя библиотеки. После выхода FL в качестве открытого исходного кода было обнаружено, что поиск «FL» в интернете был проблемой, потому что это также аббревиатура для Флориды. После долгих дискуссий и поисков нового названия инструментария, которое уже использовалось несколькими людьми, Билл Жак придумал Fast Light Tool Kit (FLTK).
Архитектура
FLTK — объектно-ориентированный виджет-инструментарий, написанный на языке программирования C++. В то время как GTK в основном для X Window System, FLTK работает на других платформах, включая Microsoft Windows (взаимодействует с Windows API), и OS X (взаимодействует с Quartz). Бэк-энд Wayland обсуждается. FLTK2 получил эмпирическую поддержку для опционального использования библиотеки графики cairo.
Языковые
Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если написаны языковые . FLTK имеет ряд для различных языков.
FLTK был в основном разработан для языка программирования C++ и написан на нем. Однако существуют и для других языков, например Lua, Perl, P on, Ruby, Rust и Tcl.
Для FLTK x в этом примере создается окно с кнопкой Ok:
GUI
FLTK включает в себя Fast Light User Interface Designer (FLUID), графический графический графический графический интерфейс, который генерирует исходные и заголовочные файлы C++.
Использовать
См. также:: Категория: Программное обеспечение, использующее FLTK.
Во многих программах и проектах используется FLTK, в том числе:
- Nanolinux, дистрибутив Linux емкостью 14 МБ
- XFDOS, дистрибутив на базе FreeDOS с графическим интерфейсом, портинг Nano-X и FLTK
- Agenda VR3, персональный цифровой помощник на базе Linux с программным обеспечением на основе FLTK.
- стороннее программное обеспечение Agenda VR3
- , by Frictional Games использует FLTK в качестве своего пускового устройства
- MwendanoWD, Logic для персонального компьютера компанией YPH.
- Аудио:
- Программное обеспечение Fldigi, радио, позволяет передавать данные и осуществлять текстовое чат с помощью цифровых режимов, таких как PSK31
- Giada, lo, микро-секвенсор, образец программного обеспечения проигрывателя, открытый исходный код
- Prodatum, редактор пресетов syntesizer, использует дизайн жизненного интерфейса
- ZynAddSubFX, синтезатор программного обеспечения с открытым исходным кодом
- DiSTI GL Studio, инструмент разработки человеко-машинного интерфейса
- Проектирование:
- ForeyPAD, интуитивно понятный инструмент для визуализации поведения структур, подверженных нагрузке и граничным условиям
- Gmsh, генератор меш конечных элементов с открытым исходным кодом
- RoboCIM, программное обеспечение для моделирования и управления работой следящей роботизированной системы и внешних устройств
- Среда рабочего стола Equinox (EDE)
- Программное обеспечение оптического диска FlBurn для Linux
- Графика:
- РедакторBiovision Hierarchy (BVH)
- CinePaint, программное обеспечение для глубокой живописи, мигрирующее от GTK к FLTK, с открытым исходным кодом
- ITK-SNAP, программное приложение для сегментирования медицинских изображений, открытый исходный код
- Оке, программа цифровой композиции. До версии 5, теперь заменена на Qt
- Открыть редактор фильмов
- Панорамирование самолетов OpenVSP, NASA paramoc, недавно открытый
- PosteRazor, программное обеспечение для постерской печати с открытым исходным кодом для Windows, OS X, Linux
- SmallBASIC, порт Windows
- Веб-браузеры:
- Dillo, Dillo-2 был основан на FLTK-2, отказ от этого филиала FLTK, без официального выпуска, был основной причиной запуска Dillo-3, используя FLTK1.3
- В-пятых, функционирует в начале Opera
- НетРайдер
- X оконных менеджеров:
- FLWM
- miwm
Версии
Эта история версий является примером иногда бурного характера разработки с открытым исходным кодом.
1.0.x
Это предыдущая стабильная версия, ныне ненарушенная.
1.1.x
Это предыдущая стабильная версия, ныне ненарушенная.
0 ветвь
Это был девелоперский филиал, давно считавшийся следующим шагом в истории FLTK, со множеством новых возможностей и стилем чистого программирования. Она никогда не достигала стабильности, и развитие в значительной степени прекратилось. Ветвь сейчас неактивна.
1.2.x
Это была попытка взять некоторые из лучших функций 0 и объединить их обратно в более популярную ветвь 1. Она больше не развита.
1.3.x
Текущий стабильный выпуск. Обеспечивает поддержку UTF-8.
4.x
Текущая отрасль разработки. Добавление дополнительных функций в 3.
3.0 ветвь
Эта отрасль в основном является концептуальной моделью для будущей работы. Теперь неактивен.
См. также
- ГТК
- gtkmm (C++ ГТК)
- Набор инструментов для
- IUP (программное обеспечение) — мультиплатформенный инструментарий для построения собственных графических пользовательских интерфейсов
- Сок
- Qt (программное обеспечение)
- Структура визуальных компонентов (VCF)
- Набор инструментов виджета
- wxWidgets — кроссплатформенные виджеты с открытым исходным кодом C++ инструментарий, разработанный сообществом
- Ультимативный++
- Список наборов инструментов для виджетов
Внешние связи
- Официальный сайт
Источник: ru.knowledgr.com