Ошибки при переносе настраиваемой полосы прокрутки с 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 (см. здесь), которой была присвоена
Возможно, для решения этой проблемы можно будет использовать внешнюю, неприсоединенную полосу прокрутки, но необходимо соблюдать осторожность, чтобы не испортить пролистываемое поведение в процессе.