65 lines
2.5 KiB
QML
65 lines
2.5 KiB
QML
// Copyright (C) 2023 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
|
|
|
import QtQuick
|
|
import QtQuick.Shapes
|
|
|
|
Item {
|
|
width: 600
|
|
height: 600
|
|
|
|
ListModel {
|
|
id: fillRules
|
|
ListElement { fillrule: ShapePath.WindingFill }
|
|
ListElement { fillrule: ShapePath.OddEvenFill }
|
|
}
|
|
|
|
ListModel {
|
|
id: renderers
|
|
ListElement { renderer: Shape.GeometryRenderer }
|
|
ListElement { renderer: Shape.CurveRenderer }
|
|
}
|
|
|
|
ListModel {
|
|
id: svgstrings
|
|
ListElement { scaleToFit: 0.6; offsetX: 20; offsetY: 20; pathString: "M 10 100 Q 10 89.6447 17.3223 82.3223 Q 24.6447 75 35 75 Q 45.3553 75 52.6777 82.3223 Q 60 89.6447 60 100 Q 60 85.5025 67.3223 75.2513 Q 74.6447 65 85 65 Q 95.3553 65 102.678 75.2513 Q 110 85.5025 110 100 Q 110 75.1472 117.322 57.5736 Q 124.645 40 135 40 Q 145.355 40 152.678 57.5736 Q 160 75.1472 160 100 Q 171.603 83.923 185 83.923 Q 198.397 83.923 210 100 L 10 100" }
|
|
}
|
|
Column {
|
|
Repeater {
|
|
model: renderers
|
|
Column {
|
|
Repeater {
|
|
model: fillRules
|
|
Row {
|
|
Repeater {
|
|
model: svgstrings
|
|
Rectangle {
|
|
width: 150
|
|
height: 150
|
|
border.color: "black"
|
|
|
|
Shape {
|
|
preferredRendererType: renderer
|
|
ShapePath {
|
|
fillColor: renderer == Shape.CurveRenderer ? "#99483d8b" : "#99dc143c"
|
|
fillRule: fillrule
|
|
strokeWidth: 0
|
|
PathSvg { path: pathString }
|
|
}
|
|
|
|
transform: Matrix4x4 {
|
|
matrix: Qt.matrix4x4(scaleToFit, 0, 0, offsetX,
|
|
0, scaleToFit, 0, offsetY,
|
|
0, 0, 1, 0,
|
|
0, 0, 0, 1)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|