我现在开始使用qt / qml进行编程,它听起来与java,我现在的区域有点不同,所以我需要在一个文件夹中填充一组.png文件的数组,但我不知道我该怎么做 我有这个:
// ...
Image {
anchors.top: parent.center
anchors.left: parent.center
anchors.margins: 0
width: 22
height: width
source: "qrc:/images/img000.png"
}
// ...
[编辑] 此代码是日历示例“../Qt-5.9/quickcontrols/controls/calendar的一部分,我开始了,因为这个例子就像我需要的那样,但是我需要在日历网格中显示此挂载的所有日子中放置图像,所以我将这些图像放在一个文件夹中,并在我的recources.qrc文件中的相应文件夹中引用这些图像,所以我需要在这个文件夹中循环才能得到所有图像,因为它们按顺序命名为“img000.png”到“img029.png”,所以我想填写这些图像的数组,然后在这个月的每个适当的代表日逐一放置这些图像。日历网格。 我不知道我是否使用List ...或者像@eyllanesc迭代文件夹文件一样,我相信哪个操作列表与java非常不同,这是在我的android项目中的java中。
我不知道QT,但我需要它,因为我需要为IO迁移这个项目?
提前致谢!
答案 0 :(得分:2)
由于图像的源是0xx.png类型的元素,可以使用Repeater的索引进行迭代,为了适应它们,你可以使用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时不优雅,最好采用一个特定的元素,例如在你的情况下是一个月的日子并作为“索引”。要每天向日历示例添加图像,您只需进行以下更改:
注意:我认为图片是img001.png,img002.png,...,img031.png
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)
}
}
截图: