2017-06-15 18 views
0

qt/qmlを使ってプログラムを始めましたが、今はJavaとは少し違って見えるので、フォルダ内に.pngファイルの配列の配列を入力する必要があります私はそれをどうやってできるのか分かりません。 私はこれを持っている:qmlの画像一覧

// ... 
Image { 
    anchors.top: parent.center 
    anchors.left: parent.center 
    anchors.margins: 0 
    width: 22 
    height: width 
    source: "qrc:/images/img000.png" 
} 
// ... 

[EDIT]このコードは、カレンダーの例」../Qt-5.9/quickcontrols/controls/calendarの一部であり、私はこの例では、私のようなものであるため、起動にそれを得ました必要がありますが、カレンダーグリッドに表示されているこのマウントの中にイメージを置く必要があるので、これらのイメージをフォルダに入れて、それぞれのフォルダのrecources.qrcファイルでこれらのイメージを参照しました。このフォルダはすべての画像を取得し、「img000.png」から「img029.png」という名前が順番に付けられているので、これらの画像の配列を塗りつぶして、これらの画像をそれぞれの適切な代表日に1つずつ収めると思いますカレンダーのグリッドに月が表示されます Lisを使用するかどうかはわかりませんt ...または@eyllanescのようにフォルダファイルを繰り返す、私はどのリストを操作することは非常に異なるフォームJavaであり、これはJavaで私のプロジェクトでアンドロイドを作っていると思います。

私はQTについて考えていませんが、IO用にこのプロジェクトを移行する必要があるため、必要ですか?

ありがとうございます!

+0

「QMLイメージLIS tモデル "は検索コンテキストで始まります。質問はここに投稿される資格がないかもしれません。 – AlexanderVX

+0

こんにちは@AlexanderVX、あなたが質問でimportunateする場合は申し訳ありませんが、私は言っているように、私は言ったように、QTのIm初心者、今、私は完全にqt/qmlで何かについては混乱するので、 。 –

+0

NP。あなたの質問は私が最初に読んだより少し複雑です。 – AlexanderVX

答えて

2

イメージのソースがタイプ0xx.pngの要素であるため、リピーターのインデックスを反復でき、それに対応するためにGridLayoutを使用できます。

GridLayout { 
     columns: 5 
     Repeater { 
      model: 30 
      Rectangle{ 
       width: 100 
       height: 100 
       Image{ 
        anchors.fill: parent 
        source: { 
         var str = "%1".arg(index); 
         var format = "000"; 
         return "qrc:/images/img%1.png".arg(format.substring(0,format.length- str.length) + str)} 
       } 
      } 
     } 
    } 

GUIを実装する場合、それはエレガントではないので、私はループを反復処理する必要はありません、特定の要素を取るために優れている、例えば、月の日、あなたの場合は、インデックス」として取ります"

をimg031.png、私はイメージが、img002.pngをimg001.pngしていると考えている...:

注:あなたが唯一の次の変更を加える必要があり、カレンダーの例に毎日画像を追加するには

source code

Image { 
    //visible: eventModel.eventsForDate(styleData.date).length > 0 
    anchors.top: parent.top 
    anchors.left: parent.left 
    anchors.margins: -1 
    width: 12 
    height: width 
    //anchors.fill: parent 
    source: { 
     var str = "%1".arg(styleData.date.getDate()); 
     var format = "000"; 
     return "qrc:/images/img%1.png".arg(format.substring(0,format.length- str.length) + str) 
    } 
} 

スクリーンショット:

enter image description here

+0

こんにちは@eyllanesc、少なくとも私は指向性の光をくれた例で、ありがとう! –

+0

ちょっと@eyllanesc、これは本当に超美しく、簡単なソリューション、ありがとう!私がプロジェクトを締結するとき、私はここに "最終的なカット"を掲示するでしょう。 –

+0

私の答えが助けてくれるなら、それを正確にマークしてください – eyllanesc

関連する問題