aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/quickcontrols2/nativestyle/CustomSliders.qml
blob: dcc0c29d1e7d296b3094bbcef5b6293eff2b2b01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts

ControlContainer {
    id: container
    title: "Sliders"
    property int sliderWidth: 300
    property int sliderHeight: 140

    Row {
        spacing: 40

        Column {
            spacing: 15

            Slider {
                id: customHandle
                width: sliderWidth
                height: 20
                from: 0
                to: 10
                value: 5
                handle: Rectangle {
                    id: handle
                    width: 12
                    height: customHandle.height
                    color: "white"
                    border.width: 2

                    x: customHandle.visualPosition * (customHandle.availableWidth - width)
                    y: (customHandle.availableHeight - height) / 2
                }
            }

            Slider {
                id: customBackground
                width: sliderWidth
                from: 0
                to: 10
                background: Rectangle {
                    implicitHeight: 5
                    color: "lightgray"
                    border.width: 1
                }
            }

            Slider {
                id: customAll
                width: sliderWidth
                height: 20
                from: 0
                to: 10
                background: Rectangle {
                    implicitHeight: customAll.height
                    color: "lightgray"
                    border.width: 1
                }
                handle: Rectangle {
                    width: 12
                    height: customAll.height
                    color: "white"
                    border.width: 2

                    x: customAll.visualPosition * (customAll.availableWidth - width)
                    y: (customAll.availableHeight - height) / 2
                }
            }
        }

        Row {
            spacing: 20

            Slider {
                id: customVHandle
                width: 20
                height: sliderHeight
                orientation: Qt.Vertical
                from: 0
                to: 10
                value: 5
                handle: Rectangle {
                    height: 12
                    width: customVHandle.width
                    color: "white"
                    border.width: 2

                    x: (customVHandle.availableWidth - width) / 2
                    y: customVHandle.visualPosition * (customVHandle.availableHeight - height)
                }
            }

            Slider {
                id: customVBackground
                height: sliderHeight
                orientation: Qt.Vertical
                from: 0
                to: 10
                background: Rectangle {
                    implicitWidth: 5
                    color: "lightgray"
                    border.width: 1
                }
            }

            Slider {
                id: customVAll
                width: 20
                height: sliderHeight
                orientation: Qt.Vertical
                from: 0
                to: 10
                value: 5
                handle: Rectangle {
                    height: 12
                    width: customVHandle.width
                    color: "white"
                    border.width: 2

                    x: (customVAll.availableWidth - width) / 2
                    y: customVAll.visualPosition * (customVAll.availableHeight - height)
                }
                background: Rectangle {
                    implicitWidth: 5
                    color: "lightgray"
                    border.width: 1
                }
            }
        }
    }
}