Introdução

No mundo do desenvolvimento de software, a criação de aplicações desktop que funcionem em múltiplas plataformas é um desafio crescente. O Harbour, uma linguagem de programação de código aberto que estende o conceito do xBase, oferece uma excelente oportunidade para desenvolvedores que desejam criar aplicações robustas e eficazes. Com a adição do framework Qt, é possível construir interfaces gráficas atraentes e funcionais que funcionem em sistemas operacionais como Windows, Linux e macOS. Este tutorial irá guiá-lo através do processo de desenvolvimento de uma aplicação desktop utilizando o Harbour e Qt, cobrindo desde a configuração do ambiente até a implementação da aplicação, incluindo boas práticas e testes. Ao final, você terá uma base sólida para explorar ainda mais o potencial do Harbour e suas ferramentas associadas.

Etapas

  1. Configuração do Ambiente de Desenvolvimento

    Verifique se você possui o Harbour e o Qt instalados. O Harbour pode ser baixado do site oficial e o Qt pode ser instalado via Qt Installer. Após a instalação, adicione os binários do Harbour e as ferramentas do Qt ao seu PATH de sistema.

    commands
    # Verifique a instalação do Harbour
    harbour --version
    # Verifique a instalação do Qt
    qmake --version

  2. Criando um novo projeto Harbour com Qt

    Crie uma nova pasta para o seu projeto e inicie o seu código num arquivo principal. Estruture o projeto como um aplicativo de console inicialmente. Isso será crucial para integrar o Qt à aplicação depois.

    main.prg
    PROCEDURE Main()
        ? 'Hello, Harbour World!'
        RETURN

  3. Integrando Qt com Harbour

    Agora você vai integrar o Qt ao seu aplicativo Harbour. Crie um arquivo de cabeçalho Qt e um arquivo fonte. Utilize a biblioteca Qt para mostrar uma janela básica. Verifique as documentações de ambos para garantir que os namespaces e bibliotecas corretas estão sendo usadas.

    main.cpp
    #include <QApplication>
    #include <QLabel>
    
    int main(int argc, char *argv[]) {
        QApplication app(argc, argv);
        QLabel *label = new QLabel("Hello, Harbour with Qt!");
        label->show();
        return app.exec();
    }

  4. Compilação do Projeto

    Utilize o qmake para gerar os arquivos Makefile e depois compile com make. Certifique-se de que está na pasta correta onde estão os arquivos .pro e .cpp.

    commands
    # Gere o Makefile
    qmake
    # Compile o projeto
    make

  5. Criando a Interface Gráfica com Qt

    Desenvolva uma interface gráfica simples usando Qt Designer. Crie um botão e uma caixa de texto. No código, conecte o botão a uma função que mostrará o texto inserido na caixa de texto quando clicado.

    interface.ui
    <!DOCTYPE UI>
    <UI version="4.0">
     <widget class="QMainWindow" name="MainWindow">
      <widget class="QPushButton" name="myButton">
       <property name="text">
        <string>Click Me!</string>
       </property>
      </widget>
      <widget class="QLineEdit" name="myLineEdit"/>
     </widget>
    </UI>

  6. Implementando a Lógica da Aplicação

    Adicione lógica de eventos ao seu código. Quando o botão for clicado, complete o texto da caixa de texto com ‘Hello, Harbour and Qt!’. Isso demonstrará a interatividade entre os componentes da interface gráfica.

    main.cpp
    #include <QApplication>
    #include <QLabel>
    #include <QPushButton>
    #include <QLineEdit>
    #include <QVBoxLayout>
    #include <QWidget>
    
    int main(int argc, char *argv[]) {
        QApplication app(argc, argv);
        QWidget window;
        QVBoxLayout *layout = new QVBoxLayout(&window);
        QLineEdit *lineEdit = new QLineEdit();
        QPushButton *button = new QPushButton("Click Me!");
        layout->addWidget(lineEdit);
        layout->addWidget(button);
        QObject::connect(button, &QPushButton::clicked, [=]() {
            lineEdit->setText("Hello, Harbour and Qt!");
        });
        window.show();
        return app.exec();
    }

  7. Executando a Aplicação

    Execute a aplicação resultante. Teste a interatividade do botão e verifique se a mensagem é exibida corretamente na caixa de texto.

    commands
    # Execute a aplicação gerada
    ./nome_do_executavel

  8. Testes e Validações

    Implemente testes para validar a funcionalidade de sua aplicação. Embora o Harbour não tenha uma estrutura de teste robusta como outras linguagens, você pode criar testes simples verificando a saída do programa.

    test.prg
    PROCEDURE Test()
        LOCAL output
        output := 'Hello, Harbour and Qt!'
        ? (output == 'Hello, Harbour and Qt!') // Deve retornar .T.
        RETURN

  9. Conclusão do Projeto

    Finalize o projeto revisando o código e melhorando a interface gráfica. Considere adicionar mais funcionalidades e realizar uma melhor verificação de erros.

    commands
    # Revise e faça modificações conforme necessário
    # Compile novamente para aplicar alterações

Conclusão

Neste tutorial, exploramos como criar uma aplicação desktop multiplataforma utilizando o Harbour e Qt. Desde a configuração do ambiente até a implementação da interface gráfica e a lógica da aplicação, você agora possui as ferramentas e o conhecimento básico para expandir suas habilidades em desenvolvimento desktop. Experimente adicionar mais funcionalidades e melhorar sua interface para criar aplicações ainda mais ricas e interativas. O potencial do Harbour combinado com a flexibilidade do Qt permite a criação de soluções elegantes que podem atender a diferentes necessidades de software.

Hashtags

#Harbour #Qt #DesenvolvimentoDesktop #xBase #AplicaçõesMultiplataforma