Производительность QML на слайдерах - PullRequest
0 голосов
/ 11 ноября 2019

Хмм .. У меня 22 из этих элементов слайдера, размещенных через Repeater в моем приложении. Перемещение слайдера довольно резкое и резкое, и это на графическом процессоре nvidia на моем ноутбуке. Это было более гладко на интегрированной графике. Есть что-то явно очевидное, что я мог бы улучшить? Я довольно новичок в Qt, так что для меня это загадка ..

import QtQuick 2.0
import QtQuick.Controls 2.2

Item {
    height: 4*82
    width: 82


    Rectangle {
        height: 4*82
        width: 83.55
        color: "#0a0a0a"
        border.color: "#80cccccc"
        Rectangle {
            width: 83.55
            height: 22
            color: "#0a0a0a"
            border.color: "#80cccccc"
            y:parent.y -22

            Label {
                x:parent.x+parent.width/2 - width/2
                y:5
                id: name
                text: qsTr("MASTER EFX SP")
                color: slider.value > 0 ? "#6eaf71" : "#3c3c3c"
                font.pixelSize: 10
            }
        }



    }


    Slider {
        id: slider
        from: 0
        to: 255
        value: 0
        orientation: Qt.Vertical
        height: (4*82)-32
        width: 83.55
        y: 16
        stepSize: 1.0

        handle: Item {
            y: parent.topPadding + parent.visualPosition * (parent.availableHeight - 50)
            x: parent.leftPadding + parent.availableWidth / 2 - 30 / 2

            Rectangle {
                color: parent.parent.pressed || parent.parent.value > 0? "#901fdcf5" :  "#90ffffff"
                border.color: parent.parent.pressed  || parent.parent.value > 0? "#1fdcf5" : "gray"
                width: 30
                height: 50
                radius: 2

            }
            Rectangle {
                color: parent.parent.pressed || parent.parent.value > 0? "#80000831" : "#4e4e4e"
                width: 30
                height: 2
                y: 50/2-2
            }
        }

        background: Rectangle {
                x: parent.leftPadding + (horizontal ? 0 : (parent.availableWidth - width) / 2)
                y: parent.topPadding + (horizontal ? (parent.availableHeight - height) / 2 : 0)
                implicitWidth: horizontal ? 200 : 6
                implicitHeight: horizontal ? 6 : 200
                width: horizontal ? parent.availableWidth : implicitWidth
                height: horizontal ? implicitHeight : parent.availableHeight
                radius: 0
                border.color: "#3c3c3c"
                color: "#3c3c3c"
                scale: horizontal && parent.mirrored ? -1 : 1

                readonly property bool horizontal: parent.orientation === Qt.Horizontal
            }

    }
}
...