2015-09-10 184 views
0

我在Qt中包含來自* .pri文件的資源時遇到了一些問題。基本上我test.pri文件看起來像這樣:包含來自* .pri文件的資源

INCLUDEPATH += $$PWD 
SOURCES  += $$PWD/testdlg.cpp 
HEADERS  += $$PWD/testdlg.h 
FORMS  += $$PWD/testdlg.ui 
RESOURCES += $$PWD/res.qrc 

的* .ico文件存儲在子文件$$ PWD/RES和我說他們成功地向我res.qrc文件,它看起來像這樣:

<RCC> 
    <qresource prefix="/"> 
     <file>res/Icon1.ico</file> 
     <file>res/Icon2.ico</file> 
    </qresource> 
</RCC> 

我包括test.pri文件到我的* .pro文件:

include(Tests/test.pri) 

在Qt Designer中,我可以看到所有的圖標,當我打開我的test.ui文件。我可以通過設計器的屬性管理器從資源中選擇QToolButton的圖標(例如)。一切都按預期工作。但是,當我編譯應用程序時,圖標不顯示。

如果我不使用* .pri文件,則會顯示QToolButton的圖標。 任何人都可以給我一個提示,我在這裏失蹤了嗎?

+0

你如何編譯你的應用程序?來自Qt的創造者?運行它時是否收到警告? –

+0

我使用MSVC2013編譯器從Qt創建者編譯。它不給我任何警告或錯誤。 – Paraboloid87

+0

如果有問題:我使用Qt Creator 3.5.0和Qt 5.5.0 MSVC 2013,32位。 – Paraboloid87

回答

0

我不明白什麼是錯的。在昨天晚上分析問題沒有取得任何成功之後,我今天早上打開了Qt創建器,一切正常。也許我只是在添加資源之後重新啓動Qt創建器?我不能說。

+0

沒有線索。很高興聽到你有它的工作。 –

0

讓我們打電話給你的主項目文件main.pro。然後從你提供的信息,我假設你有

/main.pro 
/Tests/test.pri 

由於$$PWD是.pri文件的父,我假設你有

/main.pro 
/Tests/test.pri 
/Tests/testdlg.cpp 
/Tests/testdlg.h 
/Tests/testdlg.ui 
/Tests/res.qrc 

現在在QRC文件中的條目相對於它的父目錄,所以你必須:

/main.pro 
/Tests/test.pri 
/Tests/testdlg.cpp 
/Tests/testdlg.h 
/Tests/testdlg.ui 
/Tests/res.qrc 
/Tests/res/Icon1.ico 
/Tests/res/Icon2.ico 

從您的QRC前綴,我假設你通過

調用資源
qrc:/res/Icon1.ico 
qrc:/res/Icon2.ico 

這些假設都是正確的嗎?

+0

是的,這就是我的項目結構! – Paraboloid87

相關問題