qml中的图像列表

时间:2017-06-15 00:16:17

标签: qt qml qt5

我现在开始使用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迁移这个项目?

提前致谢!

1 个答案:

答案 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

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