Делегаты разных размеров в PathView - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать меню, похожее на карусель, с элементами разного размера (текст / изображения).Я установил его и запустил, но размер всегда будет либо а) быть минимальным разрешенным размером для всех элементов модели, либо б) иметь одинаковый размер в зависимости от PathItemCount (pathView.Width / count = DelegateWidth).Явное задание ширины в делегатах и ​​/ или загрузчике не помогает.

Есть ли способ обойти это в 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
        }
    }
}
...