Jump to content

Инструментарий Фокса

Инструментарий FOX
Инструментарий FOX
Разработчик(и) Йерун ван дер Зийп, сообщество FOX
Стабильная версия
1.6.57 / 3 апреля 2018 г .;
6 лет назад
( 03.04.2018 )
Предварительный выпуск
1.7.84 / 10 сентября 2023 г .;
10 месяцев назад
( 10.09.2023 ) [1]
Написано в С++
Операционная система Кросс-платформенный
Тип Библиотека разработки
Лицензия GNU Lesser General Public License с дополнением к лицензии, позволяющим статическое связывание fox-toolkit .org /лицензия .html
Веб-сайт лиса-инструментарий .org  Edit this on Wikidata

Инструментарий FOX — это открытым исходным кодом с кроссплатформенный набор инструментов виджетов , то есть библиотека базовых элементов для создания графического пользовательского интерфейса (GUI). FOX означает «Свободные объекты для X».

Он имеет встроенную Windows 95, в стиле тему доступную как для самой Microsoft Windows , так и для системы X Window (которая используется во многих 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 упрощает стратегию обновления графического пользовательского интерфейса: во время обновления виджетов виджеты могут запрашивать у своих целей обновление их. Это означает, что командное сообщение не требует явного обновления каких-либо виджетов, как это обычно бывает. Если приложение реализует N командных сообщений, каждое из которых обновляет M виджетов, то должно быть выполнено M*N обновлений и должно быть реализовано не более M*N сообщений. С другой стороны, если виджеты запрашивают обновление, реализуются только N командных сообщений и не более M сообщений обновления. Эта стратегия отделяет обновление графического интерфейса от изменений данных, делая графический интерфейс отражением базовых структур данных в реальном времени.

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

[ редактировать ]

Зависимости

[ редактировать ]

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

Привет, мир

[ редактировать ]

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

#include "fx.h"int main(int argc, char *argv[]) {  FXApp application("Hello", "FoxTest");  application.init(argc, argv);  FXMainWindow *main=new FXMainWindow(&application, "Hello", NULL, NULL, DECOR_ALL);  new FXButton(main, "&Hello, World!", NULL, &application, FXApp::ID_QUIT);  application.create();  main->show(PLACEMENT_SCREEN);  return application.run();}

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

FXPy

#!/usr/bin/env python3from FXPy.fox import *import sysdef runme():    app = FXApp("Hello", "Test")    app.init(sys.argv)    main = FXMainWindow(app, "Hello", None, None, DECOR_ALL)    button = FXButton(main, "&Hello, World!", None, app, FXApp.ID_QUIT)    app.create()    main.show(PLACEMENT_SCREEN)    app.run()if __name__ == "__main__":    runme()

FXRuby

require 'fox16' include Fox application = FXApp.new("Hello", "FoxTest")main = FXMainWindow.new(application, "Hi", nil, nil, DECOR_ALL)FXButton.new(main, "&Hello, World!", 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.
  • TnFOX — форк библиотеки FOX.
  • SUMO (Simulation of Urban MObility) – симулятор дорожного движения с графическим редактором.

См. также

[ редактировать ]
  • FLTK — легкий, кроссплатформенный, неродной набор инструментов для виджетов.
  • fpGUI — кроссплатформенный набор инструментов для графического пользовательского интерфейса с визуальным дизайнером форм и настраиваемой программой чтения справочных документов.
  • GTK — набор инструментов виджетов, используемый GNOME . приложениями
  • gtkmm — официальный интерфейс C++ для GTK.
  • IUP — многоплатформенный набор инструментов для создания собственных графических пользовательских интерфейсов.
  • Вчера
  • Qt — набор инструментов виджетов, используемый KDE.
  • Ultimate++
  • Набор инструментов для виджетов
  • wxWidgets — кроссплатформенная библиотека виджетов C++ с открытым исходным кодом, включающая собственные наборы инструментов для виджетов.
  • Список наборов виджетов
  1. ^ «Новости» . fox-toolkit.org . Проверено 28 апреля 2024 г.
  2. ^ FOX Toolkit , Наборы инструментов GUI для системы X Window, Лесли Полцер, 27 июля 2003 г., Freshmeat.net
  3. ^ «Домашняя страница XFE» .
  4. ^ «Инструкция по установке» . fox-toolkit.org . Проверено 4 августа 2021 г.
  5. ^ «Abaqus FEA / Программы с открытым исходным кодом версии 6.7» . Архивировано из оригинала 9 ноября 2007 г. Проверено 9 декабря 2007 г.
  6. ^ «Информация о лицензировании Acronis» . Проверено 8 декабря 2007 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cbe4f06f705aa6428bbc116ed3727b51__1714318740
URL1:https://arc.ask3.ru/arc/aa/cb/51/cbe4f06f705aa6428bbc116ed3727b51.html
Заголовок, (Title) документа по адресу, URL1:
Fox toolkit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)