wxWidgets — отличный фреймворк, который позволяет создавать многоплатформенные приложения с графическим интерфейсом пользователя и без него. Есть несколько приложений, которые помогают создавать диалоги визуально, но некоторые практические проблемы заставили меня начать разработку нового приложения. Эти проблемы включают ограниченный набор виджетов или невозможность включения неграфических компонентов.
wxFormBuilder стремится быть приложением, которое не только обеспечивает визуальную разработку и генерирует соответствующий код, но и позволяет включать неграфические компоненты, а также предоставляет средства для простого расширения набора виджетов с помощью плагинов, как и другие приложения, такие как qt- дизайнер.
Интересным аспектом wxFormBuilder является хранение информации в XML-документах вместо встраивания ее в сам код. Это, а также упрощение кода приложения упрощает дальнейшую модификацию как свойств объекта, так и сгенерированного кода без необходимости повторной компиляции.
Генерация кода использует ряд «шаблонов», определенных в документе информации о классе, которые обрабатываются для генерации соответствующего кода. Генератор кода включает в себя небольшой синтаксический анализатор, который позволяет нам использовать в шаблонах простой набор директив для обработки таких функций, как обращение к свойствам объекта, генерация условного кода, буклы и другие возможности.
Таким образом, код приложения упрощается, в то же время обеспечивая простой механизм добавления компонентов. Визуальные компоненты также требуют реализации плагина, чтобы иметь возможность использовать его в визуальном редакторе, но это не означает потерю возможности «персонализировать» генерацию кода (с помощью шаблонов) для этого компонента, и плагин будет так же просто, как подпрограмма, которая создает экземпляр объекта на основе значений его свойств.