Михаил Сермяжко
Михаил Сермяжко21 сентября 2019 г. 11:43

Как в QML прокручивать ListView из кода

Добрый день.
Как в QML прокручивать ListView из кода?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

1
Михаил Сермяжко
  • 21 сентября 2019 г. 12:51
  • Ответ был помечен как решение.

Так работает

import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 2.0

Window {
    id: demo
    width: 800
    height: 600
    visible: true
    color: "#ff303030"

    property color accentColor: "#ff00b374"

    Rectangle {
        width: parent.width/2-32
        height: parent.height-32
        x: 16
        y: 16

        color: accentColor
        clip: true
        ListView {
            id: listView
            width: parent.width
            height: parent.height

            // When scroll end align to the nearest item
            snapMode: ListView.SnapToItem
            // Clip painting to his own bounding rectangle to avoid display
            // data outside specified size during flick
            clip: true
            model: 100

            // Increase Flick speed
            maximumFlickVelocity: 10000
            cacheBuffer:1000

            ScrollBar.vertical: ScrollBar {
                id: verticalScrollBar
                active: pressed || listView.moving || listUp.pressed || listDown.pressed
                orientation: Qt.Vertical
                opacity: active ? 1:0
                Behavior on opacity {NumberAnimation {duration: 500}}

                contentItem: Rectangle {
                    implicitWidth: 4
                    radius:2
                    implicitHeight: parent.height
                    color: accentColor
                }
            }

            delegate: Rectangle {
                id: lineRectangle
                height: 32
                width: listView.width

                // Change color based on index number for better readability
                color: (index & 1)? "#ffefefef" : "#ffffffff"

                Text {
                    id: textField
                    height: parent.height
                    width: parent.width
                    color: listView.currentIndex === index? accentColor:"#ff000000"
                    font.pixelSize: 16
                    horizontalAlignment : Text.AlignHCenter
                    text: "Element " + (index+1)
                }
            }
        }
    }

    // Up Button to move list up
    Rectangle {
        id: upButton

        height: 256
        width: height//parent.width
        radius: height/2

        x: parent.width*3/4-width/2
        y: parent.height*1/4-height/2

        color: "#ffffffff"

        Text {
            text: "Up"
            anchors.centerIn: parent
            color: listUp.pressed? demo.accentColor: "#ff000000"
            font.pixelSize: 64
        }

        MouseArea {
            anchors.fill: parent
            id: listUp

            SmoothedAnimation {
                target: listView
                property: "contentY"
                running: listUp.pressed
                velocity: 1000
                to: 0
            }
            onReleased: {
                if (!listView.atYBeginning)
                    listView.flick(0, 1000)
            }
        }
    }

    // Down Button to move list down
    Rectangle {
        id: downButton
        height: upButton.height
        width: upButton.width
        radius: upButton.radius
        color: upButton.color

        x: parent.width*3/4-width/2
        y: parent.height*3/4-height/2

        Text {
            text: "Down"
            anchors.centerIn: parent
            color: listDown.pressed? demo.accentColor: "#ff000000"
            font.pixelSize: 64
        }

        MouseArea {
            anchors.fill: parent
            id: listDown

            SmoothedAnimation {
                target: listView
                property: "contentY"
                running: listDown.pressed
                to: listView.contentHeight - listView.height
                velocity: 1000
            }
            onReleased: {
                if (!listView.atYEnd)
                    listView.flick(0, -1000)
            }
        }
    }
}

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    AD

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:50баллов,
    • Очки рейтинга-4
    m
    • molni99
    • 26 октября 2024 г. 1:37

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:80баллов,
    • Очки рейтинга4
    m
    • molni99
    • 26 октября 2024 г. 1:29

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:20баллов,
    • Очки рейтинга-10
    Последние комментарии
    i
    innorwall14 ноября 2024 г. 21:26
    Qt/C++ - Урок 031. QCustomPlot - строим график по времени buy generic priligy We can just chat, and we will not lose too much time anyway
    i
    innorwall14 ноября 2024 г. 19:03
    Qt/C++ - Урок 060. Настройка внешнего вида приложения в рантайме I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
    i
    innorwall14 ноября 2024 г. 11:42
    Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
    i
    innorwall14 ноября 2024 г. 9:09
    Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
    Сейчас обсуждают на форуме
    i
    innorwall14 ноября 2024 г. 3:39
    добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
    i
    innorwall11 ноября 2024 г. 10:55
    Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
    9
    9Anonim25 октября 2024 г. 9:10
    Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
    ИМ
    Игорь Максимов3 октября 2024 г. 4:05
    Реализация навигации по разделам Спасибо Евгений!

    Следите за нами в социальных сетях