PathView中不同大小的委托

时间:2018-12-17 16:38:37

标签: qt qml qtquick2

我正在尝试使用混合尺寸的项目(文本/图像)制作类似于旋转木马的菜单。我已经启动并运行它了,但大小始终是a)允许其适合所有模型项目的最小大小,或者b)取决于PathItemCount(pathView.Width / count = RepresentativeWidth)具有相同的大小。在委托和/或加载程序中显式设置宽度没有帮助。

是否可以在PathView中解决此问题,或者所有项目的大小都必须相同吗?

当前代码:

Item {
    width: parent.width
    height: 100
    PathView {
        id: pathView
        anchors.fill: parent
        model: modelData
        preferredHighlightBegin: 0.5
        preferredHighlightEnd: 0.5
        delegate: Loader {
            property string modelText: textString
            property string modelSource: imgSrc
            sourceComponent: {
                switch(itemType) {
                case "text" :
                    return textDelegate;
                case "image":
                    return imageDelegate;
                }
            }
        }
        dragMargin: pathView.width/2
        path: Path {
            startX: 0; startY: pathView.height/2
            PathLine { x: pathView.width; y: pathView.height/2 }
        }
    }
}

Component {
    id: imageDelegate
    Item {
        id: wrapper
        Image {
            anchors.centerIn: parent
            source: modelSource
        }
    }
}

Component {
    id: textDelegate
    Item {
        id: wrapper
        Text {
            anchors.centerIn: parent
            font.pixelSize: 25
            text: modelText
        }
    }
}

0 个答案:

没有答案