2016-08-16 444 views
0

在我見過的所有例子中,項目中的所有qml文件都打包在一個「qml.qrc」中,有時在不同的前綴或不同的目錄下。如何使用不同的qrc資源文件中指定的qml文件?

要從不同的qml文件訪問項目,只需導入它們。

  • 如果文件相同的前綴下,但在不同的物理目錄,那麼它的import "dirname"

  • 如果這些文件在不同的前綴,這是import "qrc:/prefixname/dirname"

然而,如果有問題的項目在不同的qrc文件中該怎麼辦?

documentation沒有提到這一點。有沒有一個很好的地方,所有有關import的詳細介紹?如何導入單個文件,如何導入整個目錄,如果文件位於不同的文件夾,不同的前綴,不同的資源等,我找不到。

如果我使用裝載機,我可以指定目標爲source:"qrc:///qrcname/filename"。這是唯一的方法嗎?

我想要做的是將樣式分成不同的資源文件,而不是混亂我的主要「qml.qrc」。

所以我會

Button 
{ 
    style: MyButtonStyle{} 
    //... 
} 
在我的主QML

,並MyButtonStyle.qml在不同的QRC文件。這是可能的,還是必須在同一個qrc文件中指定樣式?

回答

0

無論你有多少獨立的.qrc文件都沒關係。所有這些資源中列出的資源都以相同的方式顯示。如果您有衝突的文件名稱,請使用前綴來消除歧義。

+0

這個答案沒有用也沒有告訴如何導入它。我嘗試了這個問題中提到的所有3種方式,但都沒有工作。在我盲目地繼續嘗試所有可能的可能性之前,我查看了文檔,沒有找到任何東西,這就是爲什麼發佈了這個問題。 – vsz

+0

如果您的.qml文件位於資源中,則可以使用相對路徑('import「dirname」')導入其他資源文件夾。或者,您可以始終按照您在原始帖子中提到的方式傳遞完整路徑。 – jpnurmi

+1

使用'QDirIterator它(「:/」,QDirIterator :: Subdirectories); while(it.hasNext())qDebug()it.next();'main()'中打印出應用程序中的所有資源。也許結構不是你想象的那樣。 – jpnurmi