2008-09-14 98 views
13

我即將開始一個大型Qt應用程序,它由較小的組件(一起工作的類組)組成。例如,可能有一個在項目中使用的對話框,但應在集成到項目中之前自行開發。我可以創建一個專用於該對話框的子文件夾,然後以某種方式將它合併到主項目中,而不是在另一個文件夾中的某個位置進行處理,然後將其複製到主項目文件夾中。如何使用Qt創建子項目?

回答

18

這裏是我會做什麼。假設我想要以下文件夾層次結構:

/MyWholeApp 

將包含整個應用程序的文件。

/MyWholeApp/DummyDlg/ 

將包含獨立對話框的文件,它將最終成爲整個應用程序的一部分。

我會開發獨立的對話框和相關的類。我會創建一個將包含在內的Qt-project文件。它將只包含最終成爲整個應用程序一部分的表單和文件。

文件DummyDlg.pri,在/ MyWholeApp/DummyDlg /:

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

上面的例子是非常簡單的。如果需要,您可以添加其他類。

要開發獨立的對話框,然後,我會創建專用於該對話框中的Qt項目文件:

文件DummyDlg.pro,在/ MyWholeApp/DummyDlg /:

TEMPLATE = app 
DEPENDPATH += . 
INCLUDEPATH += . 

include(DummyDlg.pri) 

# Input 
SOURCES += main.cpp 

,你可以看,這PRO文件包括上面創建的PRI文件,並增加一個額外的文件(main.cpp中),其將包含基本代碼用於運行對話框作爲一個獨立的:

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

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

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

於是,包括此對話框,你需要創建一個Qt的項目文件中的整個應用程序:

文件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 

當然,Qt的項目上面的文件非常簡單,但是顯示了我如何包含獨立對話框。

0

對於Windows上的Qt,您可以爲每個想要的子項目創建DLL。之後在主項目(exe)中使用它們沒有問題。你必須照顧依賴關係,但這不是很困難。

1

是的,您可以編輯您的主項目(.pro)文件以包含您的子項目的項目文件。

See here

相關問題