Conheça o Wt Framework C++, um Qt para Web

Wt Framework é uma biblioteca toolkit desenvolvida com C++ Moderno baseado e inspirado no também framework Qt.


Conheça o Wt Framework C++, um Qt para Web

Wt Framework é uma biblioteca toolkit desenvolvida com C++ Moderno que substitui o uso de JavaScript na Web.

Possui segurança nativa contra ataques SQL Injection, XSS e CSRF. Está disponível para diversas plataformas e sistemas operacionais, tais como: Windows, macOS, GNU/Linux, Android, RaspberyPI, FreeBSD e OpenSolaris.


Assista ao Vídeo


Instalação

Você pode instalar o Wt Framework de diversas formas, usando binários pré-compilados ou compilando o código fonte.

Veja aqui o procedimento para todos os sistemas operacionais e plataformas suportadas.

Exemplo para Ubuntu


Instale as dependências

sudo apt install gcc g++ libboost-all-dev cmake

Você ainda pode complementar instalando também as dependências opcionais:

sudo apt install doxygen libgraphicsmagick3 libssl-dev libpq-dev libssl-dev libfcgi-dev

No mesmo link citado acima existe o procedimento para outras distros.


Compile e instale no seu sistemas

Agora é só fazer o download do pacote, compilar e instalar. Até a data de publicação desse artigo a versão mais recente é a: 4.9.1, mas consulte o endereço aqui na web para mais informações.

wget -c https://github.com/emweb/wt/archive/4.9.1.tar.gz
tar zxvf wt-4.9.1.tar.gz
cd wt-4.9.1/
cmake -B build .
cd build && make
sudo make install
sudo ldconfig

Código básico

Nesse exemplo é possível obter um tipo de “Hello, World!” para ter noção de como o framework funciona.

Crie um arquivo main.cpp e cole o código abaixo:

#include <Wt/WApplication.h>
#include <Wt/WBreak.h>
#include <Wt/WContainerWidget.h>
#include <Wt/WLineEdit.h>
#include <Wt/WPushButton.h>
#include <Wt/WText.h>

class HelloApplication : public Wt::WApplication {
  public:
    HelloApplication(const Wt::WEnvironment& env);

  private:
    Wt::WLineEdit *nameEdit_;
    Wt::WText *greeting_;
};

HelloApplication::HelloApplication(const Wt::WEnvironment& env)
  : Wt::WApplication(env){
    setTitle("Hello world");

    root()->addWidget(std::make_unique<Wt::WText>("Your name, please? "));
    nameEdit_ = root()->addWidget(std::make_unique<Wt::WLineEdit>());
    Wt::WPushButton *button = root()->addWidget(std::make_unique<Wt::WPushButton>("Greet me."));
    root()->addWidget(std::make_unique<Wt::WBreak>());
    greeting_ = root()->addWidget(std::make_unique<Wt::WText>());
    auto greet = [this]{
      greeting_->setText("Hello there, " + nameEdit_->text());
    };
    button->clicked().connect(greet);
  }

int main(int argc, char **argv){
  return Wt::WRun(argc, argv, [](const Wt::WEnvironment& env) {
      return std::make_unique<HelloApplication>(env);
      });
}

Para compilar rode o seguinte comando:

g++ main.cpp -lwthttp -lwt

E para rodar, rode:

./a.out --docroot . --http-address 0.0.0.0 --http-port 9090

A aplicação estará disponível no endereço e porta: http://0.0.0.0:9090, abra essa url no seu navegador.


Para mais informações acesse os links abaixo:


cpp desenvolvimentoweb web qt


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo

Artigos Relacionados




Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!