Ошибки при переносе настраиваемой полосы прокрутки с Qt 5.15 QML на Qt 6.0.2 QML

Я перехожу с графического интерфейса Qt 5.15 QML на Qt 6.0.2 QML, но в поведении возникла ошибка. Я создаю минимальный заказ ScrollBarи прикрепите его к файлу. Индикатор прокрутки отлично работает в 5.15, но в 6.x индикатор прокрутки заполняет всю прокрутку независимо от того, должен он или нет. Поведение изменилось или это ошибка?

я создаю CustomScrollbar.qml следующее:

      import QtQuick 2.15
import QtQuick.Controls 2.15
ScrollBar {
    contentItem: Rectangle {
        implicitWidth: 15
        color: "red"
    }
}

а затем использовать его в базовом ListView:

      import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
Window {
    width: 300; height: 100; visible: true

    ListView {
        id:listView
        anchors.fill:parent
        ScrollBar.vertical: CustomScrollbar {}

        model: ListModel {
            ListElement {name: "Bill"} ListElement {name: "Bob"} ListElement {name: "Andy"} ListElement {name: "Jim"}
            ListElement {name: "Ralph"} ListElement {name: "Ed"} ListElement {name: "Bill"} ListElement {name: "Bill"}
        }
       delegate: Text {
           text: name
       }
    }
}

Qt 5.15 создает правильно расположенный индикатор (слева), но Qt 6.0.2 не масштабируется должным образом и не прокручивается:

1 ответ

На момент написания этой статьи проблема считалась подтвержденной ошибкой в ​​Qt 6 (см. здесь), которой была присвоена уровень. За несколько месяцев до этого поста в статье Phoronix отмечается, что существует более 1000 ошибки томятся в Qt, поэтому неясно, будет ли более низкий уровень скоро увидит внимание.

Возможно, для решения этой проблемы можно будет использовать внешнюю, неприсоединенную полосу прокрутки, но необходимо соблюдать осторожность, чтобы не испортить пролистываемое поведение в процессе.

Другие вопросы по тегам