2016-08-16 2 views
0

私が見たすべての例では、プロジェクト内のすべてのqmlファイルは、単一の "qml.qrc"の中にパックされています。異なるプレフィックスまたは異なるディレクトリに格納されることもあります。 別のqrcリソースファイルで指定されたqmlファイルの使用方法は?

が異なるQMLファイルからアイテムにアクセスするためには、単にそれらをインポートする必要があります。

  • ファイルは、それがファイルが異なる接頭辞の下にある場合、それはしかしimport "qrc:/prefixname/dirname"

import "dirname"

  • だ、同じ接頭辞の下ではなく、異なる物理ディレクトリにある場合問題の項目が別のqrcファイルにある場合はどうすればよいですか?

    documentationはこれを言及していません。 importに関するすべてが詳細に提示される良い場所はありますか? 1つのファイルをインポートする方法、ディレクトリ全体をインポートする方法、ファイルが異なるフォルダ、異なるプレフィックス、異なるリソースなどにある場合はどうすればよいですか?

    私はローダーを使用している場合、私はsource:"qrc:///qrcname/filename"としてターゲットを指定することができます。これが唯一の方法ですか?私がやりたい何

    は私のメインの「qml.qrc」を乱雑にしないように、異なるリソース・ファイルにスタイルを分離することです。

    だから私は、別のQRCファイルに私の主なQML、およびMyButtonStyle.qml

    Button 
    { 
        style: MyButtonStyle{} 
        //... 
    } 
    

    を持っているでしょう。それは可能か、同じqrcファイルでスタイルを指定する必要がありますか?

  • 答えて

    0

    あなたが持っているどのように多くの別々の.qrcファイルは問題ではありません。すべてのリソースは同じ方法で表示されます。競合するファイル名がある場合は、接頭辞を使用して曖昧さを除去します。

    +0

    この回答は、どのようにインポートするかを明記していない場合は役に立ちません。私は質問に提示された3つの方法すべてを試してみましたが、どれも働いていませんでした。私が盲目的にすべての想像を絶する可能性を試してみる前に、私はドキュメンテーションを見て、何も見つからなかったので、これが質問が掲載された理由です。 – vsz

    +0

    .qmlファイルがリソース内にある場合は、相対パス( 'import" dirname "')を使用して他のリソースフォルダをインポートできます。また、元の投稿に記載されているように、完全なパスを渡すこともできます。 – jpnurmi

    +1

    'QDirIterator it(":/ "、QDirIterator :: Subdirectories);を使用します。 while(it.hasNext())qDebug()it.next(); 'を' main() 'で実行すると、アプリケーション内のすべてのリソースが表示されます。おそらく、あなたが思うものではないでしょうか。 – jpnurmi

    関連する問題