Pergunta

Eu estou prestes a começar uma grande aplicação Qt, que é composta de componentes menores (grupos de classes que funcionam em conjunto).Por exemplo, pode ser uma caixa de diálogo que é usada no projeto, mas deve ser desenvolvido isoladamente, antes de ser integrada no projecto.Em vez de trabalhar em outra pasta em algum lugar e, em seguida, copiá-lo para a pasta de projecto principal, posso criar uma sub-pasta que é dedicado a esse diálogo e, em seguida, de alguma forma, incorporar o principal projeto?

Foi útil?

Solução

Aqui está o que eu faria.Vamos supor que eu queira a seguinte hierarquia de pastas :

/MyWholeApp

irá conter os arquivos para o aplicativo inteiro.

/MyWholeApp/DummyDlg/

irá conter os arquivos para o autônomo dialogbox que eventualmente será parte de toda a aplicação.

Eu iria desenvolver o autônomo caixa de diálogo e as classes relacionadas.Gostaria de criar um Qt-arquivo de projeto que vai ser incluído.Ele irá conter apenas os formulários e arquivos que venham a ser parte de todo o aplicativo.

Arquivo DummyDlg.pri, em /MyWholeApp/DummyDlg/ :

# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp

O exemplo acima é muito simples.Você também pode adicionar outras classes, se necessário.

Para desenvolver o autônomo caixa de diálogo, eu teria, então, criar um projeto Qt arquivo dedicado a esta caixa de diálogo :

Arquivo DummyDlg.pro, /MyWholeApp/DummyDlg/ :

TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .

include(DummyDlg.pri)

# Input
SOURCES += main.cpp

Como você pode ver, este PRO arquivo está incluindo o PRI arquivo criado acima, e é a adição de um arquivo adicional (main.cpp) que irá conter o código básico para executar a caixa de diálogo como autônomo :

#include <QApplication>
#include "dummydlg.h"

int main(int argc, char* argv[])
{
    QApplication MyApp(argc, argv);

    DummyDlg MyDlg;
    MyDlg.show();
    return MyApp.exec();
}

Em seguida, para incluir esta caixa de diálogo para todo o aplicativo que você precisa para criar um Qt-arquivo de Projeto :

arquivo WholeApp.pro, /MyWholeApp/ :

TEMPLATE = app
DEPENDPATH += . DummyDlg
INCLUDEPATH += . DummyDlg

include(DummyDlg/DummyDlg.pri)

# Input
FORMS += OtherDlg.ui
HEADERS += OtherDlg.h
SOURCES += OtherDlg.cpp WholeApp.cpp

Claro, o Qt-arquivo de Projeto acima é muito simples, mas mostra como eu incluído o autônomo caixa de diálogo.

Outras dicas

Sim, você pode editar o seu projecto principal (.pro) do arquivo para incluir o sub-projecto do arquivo de projeto.

Veja aqui

Para o Qt no Windows, você pode criar DLLs para cada subprojeto que você deseja.Nenhum problema com a sua utilização do projeto principal (exe) depois disso.Você vai ter que cuidar de dependências, mas não é muito difícil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top