Набор инструментов Fox

Инструментарий FOX
Инструментарий FOX
Разработчик(и)Йерун ван дер Зийп, сообщество FOX
Стабильный релиз
1.6.58 / 13 мая 2024 г. ;
5 месяцев назад
 ( 2024-05-13 )
Предварительный релиз
1.7.86 / 15 августа 2024 г. ;
2 месяца назад
 ( 2024-08-15 )
Написано вС++
Операционная системаКроссплатформенный
ТипБиблиотека развития
ЛицензияGNU Lesser General Public License с приложением к лицензии, разрешающим статическую компоновку [1]
Веб-сайтfox-toolkit.org

FOX toolkit — это кроссплатформенный инструментарий виджетов с открытым исходным кодом , т. е. библиотека базовых элементов для создания графического пользовательского интерфейса (GUI). FOX расшифровывается как Free Objects for X.

В нем реализована встроенная тема в стиле Windows 95, доступная как для самой Microsoft Windows , так и для X Window System (которая используется во многих операционных системах UNIX и UNIX-подобных системах). [2]

Инструментарий FOX был выпущен под лицензией GNU Lesser General Public License . Разработка началась в 1997 году Йероеном ван дер Зейпом, когда он был аффилирован с CFDRC. С тех пор Йероен ван дер Зейп поддерживает основную библиотеку и тестовые приложения с помощью сообщества пользователей.

Инструментарий FOX написан на C++ , с языковыми привязками , доступными для Python , Ruby и Eiffel . Исходный код дистрибутива FOX поддерживает сборку с помощью множества различных (коммерческих и бесплатных) компиляторов C++.

Кроссплатформенная совместимость

FOX отличается от других кроссплатформенных наборов инструментов следующим образом:

  • Tk — кроссплатформенный инструментарий, но в нем нет всех виджетов, которые FOX считает желательными.
  • В Qt до версии 4.5 использовалась модель лицензирования, которая в некоторых случаях требовала коммерческой лицензии, тогда как в FOX этого не требовалось.
  • wxWidgets способствует использованию собственных виджетов на каждой поддерживаемой платформе.
  • FLTK — это быстрая и экономичная библиотека, которая поддерживает быструю разработку приложений и требует меньше кода для использования, но не имеет расширенных виджетов.

Все эти наборы инструментов имеют некоторую поддержку программирования на классических платформах Mac OS и/или macOS , которые в настоящее время FOX не поддерживает. [ необходима цитата ]

FOX использует технику, похожую на подход в стиле Java Swing , для отображения графического пользовательского интерфейса на экране, используя только графические примитивы, доступные на этой платформе, в отличие от оригинального подхода в стиле Java AWT , который использовал собственные виджеты. Это означает, что приложения будут иметь схожий вид и поведение на разных платформах. Теоретически, портирование FOX на новую платформу также должно быть проще, чем реализация поддержки собственных виджетов.

С другой стороны, это обычно означает, что приложения FOX будут выглядеть и ощущаться иначе, чем собственные приложения для этих платформ, что может сбить с толку некоторых пользователей. Кроме того, некоторые собственные функции платформы могут быть недоступны сразу, например, комплексная поддержка печати или интернационализированная обработка ввода, поскольку их необходимо будет повторно реализовать кроссплатформенным способом, прежде чем их можно будет использовать в FOX. Некоторые приложения, например Xfe File Manager , позволяют изменять цветовую схему для лучшей интеграции с цветами темы системы. [3] В Arch Linux доступно приложение под названием FOX Control Panel для изменения цветовой схемы всех приложений FOX в масштабах всей системы. Оно поставляется с основным пакетом FOX Toolkit.

Система обмена сообщениями

FOX предлагает прозрачную двунаправленную систему обмена сообщениями. Каждый виджет отправляет свое сообщение определенной цели. Каждое сообщение состоит из селектора, который определяет его вид, и идентификатора, который является уникальным и предоставляется перечислением виджета. Преимущество заключается в том, что каждый виджет может вызывать метод целевого виджета прозрачным образом, даже если метод не существует. Наоборот, при реализации индивидуального обработчика сообщений, поскольку отправитель известен, цель также может отправить сообщение отправителю. Это особенно важная функция в компонентно-ориентированном программном обеспечении, где компоненты могут быть написаны разными людьми или даже разными организациями.

Система обмена сообщениями FOX упрощает стратегию обновления GUI: во время обновления виджетов виджеты могут запрашивать у своих целей обновление. Это означает, что командное сообщение также не должно явно обновлять какие-либо виджеты, как это обычно бывает. В случае, если приложение реализует N командных сообщений, каждое из которых обновляет M виджетов, то должно быть выполнено M*N обновлений и должно быть реализовано не более M*N сообщений. С другой стороны, если виджеты запрашивают обновление, реализуются только N командных сообщений и не более M сообщений обновления. Эта стратегия отделяет обновление GUI от изменений данных, делая GUI отражением в реальном времени базовых структур данных.

Внутренности

Зависимости

Под капотом он зависит от кроссплатформенных библиотек, которые включают в себя следующее: [4]

Привет, мир

Следующий пример создает приложение FOX и диалоговое окно с кнопкой на C++:

#включить "fx.h" int main ( int argc , char * argv []) { FXApp application ( "Привет" , "FoxTest" ); application.init ( argc , argv ) ; FXMainWindow * main = new FXMainWindow ( & application , "Привет" , NULL , NULL , DECOR_ALL ); new FXButton ( main , "&Привет, мир!" , NULL , & application , FXApp :: ID_QUIT ) ; application.create ( ); main - > show ( PLACEMENT_SCREEN ); return application.run ( ) ; }                           

Также возможно создавать диалоги с помощью Python 2.2 и Ruby :

FXPy

#!/usr/bin/env питон3из  FXPy.fox  импорт  * импорт  sysdef  runme ():  app  =  FXApp ( "Привет" , "  Тест " )  app.init ( sys.argv ) main = FXMainWindow ( app , " Привет " , None , None , DECOR_ALL ) button = FXButton ( main , " & Привет , мир ! " , None , app , FXApp.ID_QUIT ) app.create ( ) main.show ( PLACEMENT_SCREEN ) app.run ( )                 если  __name__  ==  "__main__" :  запустить меня ()

FXRuby

требуется ' fox16' включить Fox application = FXApp.new ( "Привет" , " FoxTest" ) main = FXMainWindow.new ( application , " Привет " , nil , nil , DECOR_ALL ) FXButton.new ( main , " & Привет , мир ! " , nil , application , FXApp :: ID_QUIT , LAYOUT_FILL_X | BUTTON_TOOLBAR | FRAME_RAISED | FRAME_THICK ) application.create ( ) main.show ( PLACEMENT_SCREEN ) application.run ( )                         

Программное обеспечение, созданное на основе FOX

  • CFD-View – постобработка, разработанная ESI Group
  • Abaqus/CAE – пре- и постпроцессор конечно-элементного пакета Abaqus [5]
  • bdStudio – точный и простой в использовании инструмент визуализации для сложных аэрокосмических симуляций в реальном времени, разработанный SAIC
  • Модульная тестовая архитектура Intel (IMTA)
  • PVRShaman – бесплатная студия разработки шейдеров от Imagination Technologies
  • LinkCAD – коммерческое приложение для преобразования форматов различных САПР
  • TMP Vision и SLIM — разработаны для удовлетворения потребностей сложных моделей FEA
  • Kerkythea – многометодная система рендеринга
  • Acronis True Image и другие продукты Acronis [6]
  • Goggles Music Manager – менеджер и проигрыватель музыкальной коллекции
  • xfe – графический файловый менеджер для X Window System
  • TnFOX – форк библиотеки FOX
  • SUMO (Simulation of Urban MObility) – симулятор дорожного движения с графическим редактором

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

  • FLTK – легкий, кроссплатформенный, неродной набор виджетов
  • fpGUI – кроссплатформенный набор инструментов графического интерфейса с визуальным конструктором форм и пользовательским средством чтения справочных документов
  • GTK — набор виджетов, используемый приложениями GNOME
  • gtkmm – официальный интерфейс C++ для GTK
  • IUP – многоплатформенный инструментарий для создания собственных графических пользовательских интерфейсов
  • Сок
  • Qt — набор виджетов, используемый KDE
  • Окончательный++
  • Набор инструментов для виджетов
  • wxWidgets – кроссплатформенная библиотека виджетов C++ с открытым исходным кодом, оборачивающая собственные наборы инструментов виджетов
  • Список наборов виджетов

Ссылки

  1. ^ "Лицензия библиотеки FOX". fox-toolkit.org . Получено 01.09.2024 .
  2. ^ FOX Toolkit, GUI Toolkits для X Window System, Лесли Ползер, 27 июля 2003 г., freshmeat.net
  3. ^ "Домашняя страница XFE".
  4. ^ "Инструкции по установке". fox-toolkit.org . Получено 2021-08-04 .
  5. ^ "Abaqus FEA / Version 6.7 Open Source Programs". Архивировано из оригинала 2007-11-09 . Получено 2007-12-09 .
  6. ^ "Информация о лицензировании Acronis" . Получено 2007-12-08 .
  • Официальный сайт


Взято с "https://en.wikipedia.org/w/index.php?title=Fox_toolkit&oldid=1245053240"