2013-01-30 9 views
6

Mi chiedevo come utilizzare un progetto QT in un altro in QTCreator. Ho creato un progetto di test sottodirectory con questa gerarchia:QTCreator: Usa il progetto qt in un altro

MainProject 
    MainProject.pro 
    ConsoleSubProject 
    ConsoleSubProject.pro 
    main.cpp 
    firstclass.hpp 
    firstclass.cpp 
    GuiSubProject 
    GuiSubProject.pro 
    main.cpp 
    mainwindow.hpp 
    mainwindow.cpp 

Vorrei utilizzare la classe di "prima classe" (ConsoleSubProject) in GuiSubProject. Per farlo, ho aggiunto questa linea in GuiSubProject.pro:

include(../ConsoleSubProject/ConsoleSubProject.pro) 

Quando ho provato a costruire il progetto, che mi darà errori:

MainProject/GuiSubProject/mainwindow.hpp:4: error: QMainWindow: No such file or directory 

Se avete qualche idea su come posso usare la classe del progetto in un'altra?

saluti

+0

Cos'hai linea 4 in 'mainwindow.hpp'? – Kirween

+0

Ho #include Aleanar

+0

e hai 'QT + = gui' in' GuiSubProject.pro' per Qt include path? – Kirween

risposta

5

si può fare qualcosa di simile:

mainproject /common.pri

INCLUDEPATH += $$PWD/ConsoleSubProject 
    SOURCES  += $$PWD/ConsoleSubProject/firstclass.cpp 
    HEADERS  += $$PWD/ConsoleSubProject/firstclass.hpp 

mainproject/ConsoleSubProject/ConsoleSubProject.pro

include(../common.pri) 
    QT += core 
    SOURCES  += main.cpp 

mainproject/GuiSubProject/GuiSubProject.pro

include(../common.pri) 
    QT += core gui 
    SOURCES  += main.cpp mainwindow.cpp 
    HEADERS  += mainwindow.hpp 
+0

che funziona! Molte grazie !! Solo un'ultima semplice domanda Quando creo un nuovo file dovrò aggiungere il file manualmente a common.pri? – Aleanar

+0

È possibile aggiungere il file direttamente alla cartella comune con Qtcreator (fare clic con il tasto destro sulla cartella comune> aggiungi nuovo) nella procedura guidata è possibile scegliere il progetto che si desidera aggiungere il file – Kirween

+0

Ok, ma se si desidera aggiungere un file a ConsoleSubProject e riutilizzarlo in GuiSubProject? – Aleanar

0

Invece di includere (../.....) nella sua GuiSubProject.pro dovrebbe essere

INCLUDEPATH = ../ConsoleSubProject 
+0

Ci ho provato ma non posso utilizzare la classe: simboli non definiti per l'architettura x86_64: "FirstClass :: FirstClass()", fa riferimento a: MainWindow :: MainWindow (QWidget *) in mainwindow.o – Aleanar

Problemi correlati