wxWidgets


wxWidgets (ранее известная как wxWindows) — кроссплатформенная библиотека инструментов с открытым исходным кодом для разработки кроссплатформенных на уровне исходного кода приложений. Основным применением wxWidgets является построение графического интерфейса пользователя (GUI), однако библиотека включает большое количество других функций и используется для создания весьма разнообразного ПО. wxWidgets выпущена под лицензией, базирующейся на LGPL. Проект был начат в 1992 Джулианом Смартом (Julian Smart), который до сих пор является членом основной группы разработчиков и уделяет ему внимание, в частности, разрабатывая среду построения графических интерфейсов на wxWidgets — DialogBlocks[2].

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

Приложения обычно показывают пользователю окна со стандартными элементами управления, изображениями и графиками; реагируют на события от мыши, клавиатуры и других источников — эти стандартные интерфейсные функции легко реализуются при использовании wxWidgets и отходят на второй план, позволяя программисту сосредоточить свои усилия на функциональности приложения. Более того, поскольку на разных операционных системах и устройствах по-разному могут быть реализованы и другие функции, wxWidgets включает высокоуровневые средства (наборы классов) для работы с графическими изображениями, документами в форматах XML и HTML, архивами, файловыми системами, процессами, подсистемами печати, мультимедиа, сетями, классы для организации многопоточности, конфигурирования приложений, межпроцессного взаимодействия, доступа к базам данных, отладки, отправки дампов и множество других инструментов.

Такие развитые средства библиотеки wxWidgets позволяют писать программы на базе единого API и компилировать на множестве компьютерных платформ с минимальными изменениями в исходном коде либо вообще без них. Она поддерживает системы Microsoft Windows, Apple Macintosh, UNIX-подобные (для X11, Motif и GTK), OpenVMS и OS/2. Встраиваемая (Embedded) версия находится в разработке.

Библиотека написана на C++, но может подключаться ко множеству других распространённых языков, таких, как Ruby (wxRuby, Anvil), Python (wxPython), Smalltalk (wxSqueak), Perl, Erlang, Haskell[3], Lua[4].

Важная особенность wxWidgets: в отличие от некоторых других библиотек (Swing, Qt и др.), она максимально использует «родные» графические элементы интерфейса операционной системы всюду, где это возможно. Это существенное преимущество для многих пользователей, поскольку они привыкают работать в конкретной среде, и изменения интерфейса программ часто вызывают затруднения в их работе.