Категории программ

Новые программы

wxWidgets

30 апреля, 2014 0

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

wxWidgets разработана не только для того, чтобы создавать GUI. Она также имеет набор классов для работы с графическими изображениями, HTML, XML документами, архивами, файловыми системами, процессами, подсистемами печати, мультимедиа, сетями, классы для организации многопоточности, отладки, отправки дампов и множество других инструментов.

Некоторые примеры приложений, построенных с использованием библиотеки wxWidgets: Code::Blocks (IDE), CodeLite (IDE), Audacity, BitWise IM, Kirix Strata, Valentina Studio, UnrealEd, wxMaxima и многие другие.

wxWidgets выпущен под «разрешающей изменения (но явно одобренной Open Source Initiative) GNU Lesser General Public License». Проект был запущен в 1992 Юлианом Смартом (Julian Smart), который до сих пор остаётся главным разработчиком.

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

Приложения обычно показывают пользователю окна со стандартными элементами управления, изображениями и графиками; реагируют на события от мыши, клавиатуры и других источников; общаются с другими приложениями, запускают другие программы – подобные стандартные блоки отходят на второй план при использовании wxWidgets, позволяя программисту сосредоточить свои усилия на функционале приложения.

Пока wxWidgets называют инструментарием разработки графических интерфейсов пользователя, он действительно им является. Однако на самом деле он не ограничивается этим – фреймворк реализует многие аспекты программирования. И это не является избыточностью, так как от wxWidgets требуется, чтобы приложения целиком были переносимыми на разные платформы, а не только их графическая часть. wxWidgets предоставляет классы для файлов, потоков, многопоточности, конфигурирования приложений, межпроцессного взаимодействия, доступа к базам данных и многое другое.

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

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

Среди компиляторов C++ поддерживаются:

GCC и его портированные варианты Cygwin, MinGW и emx+gcc
Microsoft Visual C++
Borland C++
Watcom C++
VisualAge
Symantec C++
Digital Mars C++

Распространённое программное обеспечение, написанное на wxWidgets

Преимущества wxWidgets

wxWidgets имеет API, который одинаков или почти одинаков на всех поддерживаемых платформах. Это означает, что вы можете написать приложение, к примеру, под Microsoft Windows и затем с очень немногими (если они вообще понадобятся) изменениями перекомпилировать его под Linux или Mac OS X. Это дает огромное преимущество по сравнению с раздельным программированием под каждую платформу: вам не придется изучать специализированный API для каждой платформы. Кроме того, при выпуске новых версий операционных систем и версий wxWidgets уже написанные приложения всегда будут выглядеть актуально и использовать последние графические версии элементов управления.

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

Почему не Java? Java отлично подходит для web-приложений, но не является удачным выбором для десктопа. Прежде всего, C++ приложения, работающие с wxWidgets, быстрее, имеют более естественный вид. Они проще в установке, поскольку не требуется специальная виртуальная машина. C++, к тому же, предоставляет простой доступ к низкоуровневой функциональности, и написанный код может быть легко интегрирован с уже имеющимся C/C++ кодом.

Это важный психологический и стратегический момент. Создавая исходный код с использованием бесплатных свободных библиотек, всегда можно решить свои задачи, редактируя исходный код; это гораздо практичнее, чем отправлять запрос на требуемую функциональность производителю библиотеки и дожидаться обновления.

wxWidgets имеет широкий спектр пользователей – от программистов-энтузиастов до крупных корпораций, от отделов научного программирования до медицинских исследовательских групп, от экологических исследователей до телекоммуникационной индустрии.

от замены MFC на одной платформе до обеспечения возможности быстрого портирования приложения с, к примеру, Microsoft Windows на Unix и Mac OS X. wxWidgets также позволяет переносить приложения на мобильные платформы, такие, как встраиваемый Linux, Pocket PC или Palm OS.

Недостатки wxWidgets

Так, на официальном сайте в разделе «Документация» по многим классам не было справки вообще, либо справка ограничивалась одной-двумя строками. Но начиная с версии 2.9.0 документация была переведена на использование Doxygen и была радикально переработана.

wxWidgets

Ссылки

Сайт wxWidgets

Скачать wxWidgets

Веб-разработчику , Веб-фреймворки , Компоненты и библиотеки , Разработчику , Средства разработки

Оставить комментарий

*