QT中使用pri子工程
使用子工程的作用是使得工程結構更加清晰,舉個例子:
我制作了一個自定義控件,具備通用性,我打算把它用在日后的工程中。制作的這個控件需要用到頭文件h、源文件c,資源文件qrc、圖片文件png、以及這些文件的工程引用描述文件pro/pri,如果我想在以后的工程中使用這個控件,那么我必須把這一堆文件放到新工程對應的各個對應目錄下,那么這個控件的資源文件和新工程的資源文件可能就要混到一塊,耦合度太大。使用pri子工程的話,就可以把這個控件相關的所有文件都集成到一個單獨的文件夾下,例如下圖的customedWdt文件夾。如果新工程需要使用這個控件,那么只要把這個文件夾都拷貝到新工程目錄下,然后在新工程的pro文件中include這個控件的pri文件即可。
pri文件的內容與pro文件格式相同,主要是描述源文件、頭文件的包含路徑,例如本文中的pri內容如下:
RESOURCES += \ $$PWD/pic/pic.qrc HEADERS += \ $$PWD/roundmeter.h SOURCES += \ $$PWD/roundmeter.cpp INCLUDEPATH += customedWdt
$$PWD代表pri文件所在的文件夾路徑,當然$$PWD這個詞不是我手寫的,而是鼠標右擊添加文件時,QT自動添加的。
新工程中,引用這個子工程的方法就是,在pro文件中,include這個pri文件,本文為例,直接在pitMeter.pro文件中添加一行:
include (./customedWdt/customedWdt.pri)
就算完成了。
為了使工程結構更清晰,方法不止使用pri文件這一種,最清晰的方法應該是,把子工程編譯成lib/dll庫文件,但是編譯成庫的話,不方便實時修改源碼,和使用pri相比,各有利弊。