как создать полосу прокрутки для прямоугольника в QML

как и на веб-страницах, когда контент выходит за пределы прямоугольника, появляется полоса прокрутки. Есть ли еще кто-нибудь, кто может мне помочь? Я пробовал использовать список, но не могу использовать его в прямоугольнике


person nick    schedule 06.11.2016    source источник
comment
Было бы полезно дать немного больше деталей и, возможно, отрывок кода того, что вы пробовали.   -  person wwkudu    schedule 06.11.2016
comment
Попробуйте ScrollView   -  person folibis    schedule 06.11.2016


Ответы (2)


В документации есть пример использования _ 1_ без Flickable:

 введите описание изображения здесь

import QtQuick 2.7
import QtQuick.Controls 2.0

Rectangle {
    id: frame
    clip: true
    width: 160
    height: 160
    border.color: "black"
    anchors.centerIn: parent

    Text {
        id: content
        text: "ABC"
        font.pixelSize: 160
        x: -hbar.position * width
        y: -vbar.position * height
    }

    ScrollBar {
        id: vbar
        hoverEnabled: true
        active: hovered || pressed
        orientation: Qt.Vertical
        size: frame.height / content.height
        anchors.top: parent.top
        anchors.right: parent.right
        anchors.bottom: parent.bottom
    }

    ScrollBar {
        id: hbar
        hoverEnabled: true
        active: hovered || pressed
        orientation: Qt.Horizontal
        size: frame.width / content.width
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.bottom: parent.bottom
    }
}
person jpnurmi    schedule 06.11.2016
comment
Я думаю, это так здорово, что вы можете получить эту функциональность на таком базовом предмете. :) - person Mitch; 06.11.2016
comment
Должно ли это работать на сегодняшний день (декабрь 2017 г.)? Потому что это не так, когда я пытаюсь. и эти две страницы qt не найдены. - person s1n7ax; 17.12.2017
comment
У меня работает с Qt 5.9.3 и Qt 5.10.0. Я обновил ссылки. - person jpnurmi; 17.12.2017

добавление прямоугольника в flickable решило мою проблему

import QtQuick.Controls 2.5
import QtQuick.Controls.Material 2.5
import QtQuick 2.8
Item {
    id: item1
    visible: true
    width: 800
    height: 600
    ScrollView {
        id: frame
        clip: true
        anchors.fill: parent
        //other properties
        ScrollBar.vertical.policy: ScrollBar.AlwaysOn
        Flickable {
            contentHeight: 2000
            width: parent.width
            Rectangle {
                id : rectangle
                color: "#a7c4c6"
                radius: 6
                //visible: !busyIndicator.running
                anchors.fill: parent
            }
        }
    }
}
person Mahdi Khalili    schedule 29.12.2018