Я пытаюсь использовать transientScrollbars в моем QML-дереве.Я импортировал «QtQuick.Controls.Styles 1.4» и включил их.
- Полосы прокрутки не отображаются автоматически, если навести указатель мыши на область полосы прокрутки.
- Если я использую QtQuick.Controls 2. * он работает нормально
Они появляются, если я использую колесо прокрутки.В течение небольшого периода времени, когда они видны, они реагируют на события при наведении мыши.
Эту проблему можно воспроизвести, добавив следующие строки кода в TreeView в filesystembrowser примера Qt:
import QtQuick.Controls.Styles 1.4
[...]
style: TreeViewStyle {
transientScrollBars: true
}
[...]
Это минимальный пример с просмотром прокрутки.
import QtQuick 2.9
import QtQuick.Controls 1.5
import QtQuick.Controls.Styles 1.4
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Scroll")
ScrollView {
width: 200
height: 200
clip: true
style: ScrollViewStyle {
transientScrollBars: true
}
Label {
text: "ABC"
font.pixelSize: 224
}
}
}
Как сделать так, чтобы это событие при наведении мыши работало, чтобы показать мои переходные полосы прокрутки?Я должен использовать QtQuick.Controls 1. * для моего TreeView.
Я посмотрел в ScrollViewStyle , но я немного растерялся.В качестве быстрого решения я попытался добавить свою личную область мыши, чтобы вызвать событие для отображения ScrollBar.Но я застрял на том, что и как вызвать это в ScrollViewStyle.
РЕДАКТИРОВАТЬ: Я нашел быстрое, но грязное решение для моей проблемы:
[...]
MouseArea {
height: testView.height
width: 20
anchors.right: testView.right
anchors.top: testView.top
hoverEnabled: true
onEntered: testView.__listView.contentY = testView.__listView.contentY + 0.1
preventStealing: false
propagateComposedEvents: false
}
[...]
Byувеличивая мой __treeView.contentY на небольшое число, treeView визуально не перемещается, но переходные полосы прокрутки отображаются на введенном.Мне не нравится это решение, потому что должен быть способ показывать полосы прокрутки, не перемещая treeView ...