Como faço para fazer um subprojeto com o Qt?
-
09-06-2019 - |
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?
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.
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.