如何解决将 Qt 5.15 QML 移植到 Qt 6.0.2 QML 时自定义滚动条大小的错误
我正在将 GUI 从 Qt 5.15 QML 转换为 Qt 6.0.2 QML,但在 ScrollBar
行为中出现错误。我发现了 MacOS 10.15.7 的问题,我不知道它存在于其他地方的什么地方。我创建了一个最小的自定义 ScrollBar
并将其附加到 ListView
。滚动指示器在 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 不能正确缩放并且不能滚动:
解决方法
在撰写本文时,该问题似乎已被接受为 Qt 6(请参阅 here)中的已验证错误,该错误已被指定为 P2 - Important
级别。在本帖发布前几个月,an article by Phoronix 指出 Qt 中有 1000 多个 P1 - Critical
错误正在消退,因此尚不清楚较低级别的 P2
是否会很快引起关注。
可能可以使用外部非附加滚动条来解决此问题,但需要注意不要在此过程中破坏可滑动行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。