2011-06-11 94 views
1

這裏我描述了我面臨Qt資源.rcc文件的問題。Qt資源文件利用率

首先,當我在我的項目中創建.qrc文件時,它將適合qrc中添加到可執行二進制文件中的所有資源。

第二,在Qt中使用rcc文件以及優化資源利用率,當我在我的項目中創建它時,它仍然包含所有資源(添加到.qrc文件中)到可執行二進制文件中,甚至rcc文件已經包含所有這樣的資源,我的問題是爲什麼即使資源被包含在可執行的二進制文件中也使用這個rcc。爲什麼在項目中包含冗餘?

它可能我誤解了某些東西,或者我沒有意識到某些問題,請糾正我,如果我錯了。

回答

0

有兩個選項爲Qt resources

  • 包括在.pro文件.qrc
RESOURCES = myapp.qrc 
  • 創建rcc外部二進制資源文件,然後將其註冊在運行時與
QResource::registerResource("/path/to/myresource.rcc"); 

不要兩者都做。即如果您之前將.qrc直接包含在您的.pro中,並且現在想要動態地包含它,請從項目文件中刪除RESOURCES行並進行乾淨構建。如果您未在項目的RESOURCES設置中列出外部二進制資源,則不包含在您的可執行文件中。

2

答案爲時已晚,但可能對任何人都有幫助。

我希望類似的問題,並用於未來的解決方案: 如果使用QtCreator,只是包裝你的資源+ = XXX在.pro文件中的配置條件,這樣的:

!realbuild { 
    RESOURCES += xxx.qrc 
} 

,並設置CONFIG + = realbuild到qmake params。它給了什麼?您可以使用QtCreator的設計器編輯您的表單,並直接從編輯器使用資源,但不會將其編譯到您的目標文件中,必須使用QResource :: registerResource()在運行時加載資源。使用可以手動構建資源,使用直接調用rcc工具,或者編寫一個簡單的腳本,並使用QMAKE_POST_LINK變量調用它。

現在的問題是 - 如何在運行時重新加載資源?...