LXF90:wxWidgets

Материал из Linuxformat.

Перейти к: навигация, поиск

wxWidgets 2.8

Темная лошадка среди GUI-инструментариев, теперь еще и с визуальным конструктором интерфейсов. Пол Хадсон спихивает с экрана Qt с GTK и запускает Python...

Час языка программирования Ruby пробил лишь с появлением среды разработки Rails. В случае с wxWidgets все наоборот: эта библиотека обрела популярность лишь после создания wxPython. Пока KDE/Qt и Gnome/GTK пожинали лавры, wxWidgets потихоньку росли над собой, внедряя улучшение за улучшением.

Как и Qt, wxWidgets – межплатформенный инструментарий для создания графических пользовательских интерфейсов, написанный на C++. Опять же, как и Qt, wxWidgets имеет массу дополнительных функций вроде поддержки потоков, доступа к базам данных и т.п. Но, в отличие от Qt, ядро wxWidgets – оно отвечает за рендеринг всего GUI – целиком полагается на ОС, воспроизводящую интерфейс, а значит, приложения wxWidgets будут почти неотличимы от «родных» [Qt и GTK+ эмулируют внешний вид и поведение интерфейсных элементов целевой платформы, делая это более или менее удачно, – прим. ред.]. Еще важнее то, что у wxWidgets более либеральная лицензия, чем у Qt – модифицированная LGPL, позволяющая создавать с помощью инстру- ментария приложения с закрытым исходным кодом, тогда как версия GPL для Qt требует непременного раскрытия кодов.

Все это немаловажно, но для нас главное – энтузиазм, с которым сообщество wxWidgets поддерживает программу, и с версией 2.8 этот энтузиазм не ослабел. Среди новинок – полностью переработанный элемент rich text с API в стиле стека, напоминающим HTML; инструмент выбора цвета (color picker), выводящий выбранный цвет на кнопку; и элемент «гипертекст», открывающий браузер пользователя при щелчке по гиперссылке. Такое мог бы запрограммировать для себя каждый, а wxWidgets взял да и ликвидировал лишнюю мороку.

Эти функции дополняются десятками других мощных инструментов, например, неизменно популярным менеджером «мышиных» жестов, что позволяет wxWidgets прочно удер- живать второе место по простоте использования среди GUI API после Gambas. Все новшества 2.8 работают надежно, но гвоздь программы – несомненно, wxAUI, что означает WX Advanced User Interface (Продвинутый интерфейс). Он призван устранить неразбериху, созданную wxIFM, wxDockIt и wxFrameLayout, пытающимися сделать одно и то же. Цель wxAUI – предоставить полную поддержку передвижения и размещения фреймов и панелей инструментов в пределах интерфейсов wxWidgets, а кроме того – упростить сохранение и загрузку «перспектив» (сохраненных раскладок).

Новаторский wxAUI

Разработка сложных GUI с использованием фреймов традиционно была нелегкой задачей, поэтому wxAUI можно справедливо считать открытием. Но это не революция: Qt представлял (хоть и не такой крутой) QDockWidget еще в Qt 4.0, поэтому первенство не за wxWidgets. К тому же панелям инструментов wxAUI пока что нужна доводка: например, предстоит научить их рисовать «стрелочки», когда вся панель не умещается в окне.

Еще одна область, в которой WxWidgets еще только пробует силы – поддержка письма справа налево. Поддержку арабского в wxWidgets для Windows намеревались добiавить в рамках проекта Google Summer Of Code, но попытка провалилась. Разработчики wxWidgets подобрали обломки, и в новой версии впервые появилась поддержка арабского письма для пользователей GTK.

Несмотря на сложности интернационализации, wxWidgets продолжает славную традицию: предоставлять максимум функциональности при минимальных усилиях программиста. Пользуетесь ли вы оригинальным вариантом C++ или привязкой к одному из других языков высокого уровня – вы согласитесь, что эта версия определенно стоила ожидания, и несомненно обогатит ваши GUI новыми функциями. Избавиться бы только от поганого чувства, что она смахивает на MFC от Microsoft... LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию