WUI - Оконная библиотека пользователя

WUI - это кроссплатформенная библиотека для создания графических пользовательских интерфейсов настольных приложений.

В настоящее время поддерживаются операционные системы Windows и Linux, в стадии разработки находится поддержка macOS. Код написан на C++ и пока не имеет биндингов к другим языкам.

WUI предоставляет удобный способ создания кроссплатформенных графических программ на современном языке C++

Библиотека использует C++17 и имеет минималистичный API. Основной принцип проектирования - выжать из минимума кода максимум функциональности и скорости выполнения. Платформозависимый код инкапсулирован всего в двух классах - window и graphic.

Создаете на одной системе, а запускаете на всех

Ваше приложение, написанное один раз, будет одинаково работать и выглядеть под Windows, Linux и macOS

Продвинутая система управления ресурсами

Встроенная поддержка локалей и цветовых тем на основе json-схем позволяет легко создавать впечатляющие многоязычные приложения с разнообразными цветовыми и визуальными темами.

Минимальный размер приложения

Средний размер двоичного кода, добавляемого в приложение, составляет 2 мегабайта, что в 20-30 раз меньше, чем у конкурентов

Открытое ПО, лицензия Boost

Вы можете свободно внедрять WUI в свое программное обеспечение без необходимости публикации исходного кода или приобретения лицензии

Экранные снимки приложений на WUI

Такие приложения, как видео мессенджер VideoGrace и возможно, ваше новое приложение сделаны с помощью WUI 😉

Демонстрационное приложение :: Windows x64 | Linux x64

Быстрый старт

Несколько действий и ваше приложение запускается и готово к дальнейшему развитию

Точка входа в приложение

Функция main()

int main(...)
{
    wui::framework::init();

    // Код, инициализации конфига, визуальной темы и локали

    MainFrame mainFrame;
    mainFrame.Run();

    wui::framework::run();

    return 0;
}
Главное окно

class MainFrame
{
public:
    MainFrame();

    void Run();

private:
    void ReceiveEvents(const wui::event &ev);
    void UpdateControlsPosition();
    void OnOK();
    
    static const int32_t WND_WIDTH = 400, WND_HEIGHT = 400;
    
    std::shared_ptr window = std::make_shared();
    
    std::shared_ptr logoImage = std::make_shared(IMG_LOGO);
    
    std::shared_ptr whatsYourNameText = std::make_shared(
        wui::locale("main_frame", "whats_your_name_text"),
        wui::text_alignment::center,
        "h1_text");
                            
    std::shared_ptr userNameInput = std::make_shared(wui::config::get_string("User", "Name", ""));
                            
    std::shared_ptr okButton = std::make_shared(
        wui::locale("main_frame", "ok_button"),
        std::bind(&MainFrame::OnOK, this));
                            
    std::shared_ptr messageBox = std::make_shared(window);
                            
    bool user_approve_close = false;
};
                            
Результат

Демонстрационное приложение показывает логотип, выводит надпись и предоставляет поле ввода. При нажатии на кнопку, происходит вывод окна сообщения и приложение закрывается. Также отслеживается закрытие окна пользователем, с выводом подтверждения.

Больше подробностей
Описание стартового приложения

Новости WUI

Важные события

Старт проекта

17 декабря 2021

Первый коммит, "день рождения" проекта

Windows порт

20 января 2022

Реализован ввод в эксплуатацию и работа под управлением Windows

Linux порт

February 26, 2022

Реализован ввод в эксплуатацию и работа под управлением ОС Linux

Сделан сайт и выложена документация

26 сентября 2023

После года промышленной эксплуатации на ряде предприятий, продукт стабилизирован и опубликован