Wt (веб-инструментарий) - Wt (web toolkit)

Вес
Оригинальный автор (ы)Emweb
изначальный выпуск1.0.0 / декабрь 2005 г.; 15 лет назад (2005-12)
Стабильный выпуск
4.1.1 / 9 сентября 2019 г.; 14 месяцев назад (2019-09-09)[1]
РепозиторийWt репозиторий
Написано вC ++
Операционная системаКроссплатформенность
ТипВеб-фреймворк
ЛицензияС двойной лицензией:
Интернет сайтwww.webtoolkit.Европа/ вес

Вес (произносится "остроумный") является Открытый исходный код виджет -центрический веб-фреймворк для C ++ язык программирования. Он имеет API напоминая Qt framework (хотя он был разработан с помощью Boost и несовместим при смешивании с Qt), также с использованием дерева виджетов и событийный система сигналов / слотов.[2]

Цель конструкции Wt - извлечь выгоду из сохранный компонент модель, используемая в API настольных приложений, применяется к Веб-разработка —Вместо традиционных MVC (модель – представление – контроллер) шаблон проектирования. Поэтому вместо использования MVC на уровне страница в Интернете, он доведен до уровня отдельных компонентов.[3]

В то время как библиотека использует рабочий стол процесс разработки программного обеспечения, он поддерживает некоторые сеть -специфические особенности, в том числе:

Одна из уникальных особенностей Wt - это уровень абстракции браузера. рендеринг модель. Библиотека использует Аякс для связи с совместимыми с ним браузерами, используя простой HTML -форма обратные сообщения для других пользовательские агенты. Использование прогрессивного бутстрап -метод, пользовательский интерфейс отображается как простой HTML документ сначала, при условии поддержки в браузере, он автоматически обновляется для использования Аякс для повышения интерактивности. Таким образом, Wt по определению:

Из-за популярности C / C ++ в Встроенная система среды, Wt часто используется в таких устройствах и (как следствие) был оптимизирован для спектакль.

Основные особенности

Более подробный обзор см. В разделе «Возможности» официального сайта.

Пример кода

В "Привет, мир!" программа в массе:

#включают <Wt/WApplication.h>#включают <Wt/WBreak.h>#включают <Wt/WContainerWidget.h>#включают <Wt/WLineEdit.h>#включают <Wt/WPushButton.h>#включают <Wt/WText.h>/* * Простой класс приложения hello world, демонстрирующий, как реагировать * к событиям, считывать ввод и давать обратную связь. */учебный класс HelloApplication : общественный Вес::WApplication{общественный:  HelloApplication(const Вес::WE Окружающая среда& env);частный:  Вес::WLineEdit *nameEdit_;  Вес::WText     *приветствие_;  пустота приветствовать();};/* * Аргумент env содержит информацию о новом сеансе, и * первоначальный запрос. Его необходимо передать в WApplication * конструктор, поэтому он обычно также является аргументом для вашего пользовательского * конструктор приложения.*/HelloApplication::HelloApplication(const Вес::WE Окружающая среда& env)  : WApplication(env){  setTitle("Привет, мир");                            // заголовок приложения  корень()->Добавить новое<Вес::WText>("Ваше имя, пожалуйста ? ");  // показать текст  nameEdit_ = корень()->Добавить новое<Вес::WLineEdit>();        // разрешить ввод текста  nameEdit_->setFocus();                              // фокус  авто кнопка = корень()->Добавить новое<Вес::WPushButton>(«Приветствуй меня».); // создаем кнопку  кнопка->setMargin(5, Вес::Сторона::Оставили);                       // добавляем отступ в 5 пикселей  корень()->Добавить новое<Вес::WBreak>();            // вставляем разрыв строки  приветствие_ = корень()->Добавить новое<Вес::WText>(); // пустой текст  /*   * Подключите сигналы со слотами   *   * - простой способ Wt: указать объект и метод   */  кнопка->щелкнул().соединять(это, &HelloApplication::приветствовать);  /*   * - с использованием произвольного функционального объекта, например полезно связать   * значения с std :: bind () для результирующего вызова метода   */  nameEdit_->enterPressed().соединять(стандартное::связывать(&HelloApplication::приветствовать, это));  /*   * - с использованием лямбды:   */  кнопка->щелкнул().соединять([=]() {     стандартное::Cerr << "Привет, " << nameEdit_->текст() << " п";  });}пустота HelloApplication::приветствовать(){  /*   * Обновите текст, используя ввод текста в поле nameEdit_.   */  приветствие_->setText("Привет, " + nameEdit_->текст());}int главный(int argc, char **argv){  /*   * Ваш основной метод может настроить некоторые общие ресурсы, но затем   * запустить серверное приложение (FastCGI или httpd), которое начинает прослушивание   * для запросов и обрабатывает все жизненные циклы приложения.   *   * Последний аргумент WRun указывает функцию, которая будет создавать экземпляр   * новые объекты приложения. Эта функция выполняется, когда новый пользователь просматривает страницы   * в приложение Wt, и после того, как библиотека согласовала браузер   * поддерживать. Функция должна возвращать только что созданное приложение.   * объект.   */  возвращаться Вес::WRun(argc, argv, [](const Вес::WE Окружающая среда &env) {    /*     * Вы можете прочитать информацию из окружающей среды, чтобы решить,     * у пользователя есть разрешение на запуск нового приложения     */    возвращаться стандартное::make_unique<HelloApplication>(env);  });}

Смотрите также

Рекомендации

  1. ^ "Wt: Выпуск v4.1.1". webtoolkit.eu. 9 сентября 2019 г.,. Получено 11 октября, 2019.
  2. ^ Думон, Вим; Дефорш, Коэн (11 февраля 2008 г.). "Wt: набор веб-инструментов". Журнал доктора Добба. Получено 24 января, 2017.
  3. ^ Фолькман, Виктор (6 июня 2008 г.). "Wt: Библиотека C ++ Web Toolkit позволяет писать веб-приложения, не зависящие от скриптов". QuinStreet. Получено 24 января, 2017.

внешняя ссылка

Официальный веб-сайт Отредактируйте это в Викиданных