QML / QT: вертикальная полоса прокрутки в виде таблицы (мышь работает, но касание не работает на полосе прокрутки)

#qml #tableview

#qml #просмотр таблицы

Вопрос:

Ниже приведен простой пример из одного файла, который демонстрирует мою озабоченность. Область прокрутки в виде таблицы работает, как и ожидалось, с помощью мыши и касания. Кажется, что это полоса прокрутки, которая не работает должным образом. Мышь позволяет щелкнуть и перетащить маркер полосы прокрутки, а также щелкнуть на фоне полосы прокрутки, и область содержимого реагирует. Однако, если вы попытаетесь нажать на фоне полосы прокрутки или захватить ручку полосы прокрутки с touch…no ответ. Почему? Предложения по исправлению?

Спасибо, -Богатый

 import QtQuick.Window 2.12
import QtQuick 2.12
import QtQuick.Controls 1.4
import QtQuick.Controls 2.5
import QtQuick.Controls.Styles 1.4

Window {
    width: 641
    height: 480
    visible: true
    title: qsTr("Hello World")
    Rectangle {
        width: 640
        height: 200
        anchors.fill: parent
        TableView {
            id: tv
            horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff
            verticalScrollBarPolicy: Qt.ScrollBarAlwaysOn
            TableViewColumn {
                role: "title"
                title: "Title"
                width: 100
            }
            TableViewColumn {
                role: "author"
                title: "Author"
                width: 200
            }
            model: libraryModel1
            style:  TableViewStyle {
                decrementControl: Rectangle {
                    width: 0
                    visible: false
                }
                incrementControl: Rectangle {
                    width: 0
                    visible: false
                }
                scrollToClickedPosition: true
                handle: Rectangle {
                    visible: true
                    implicitWidth: 10
                    radius: width/2
                    color: "#2EA2EC"
                }
                scrollBarBackground: Rectangle {
                    visible: true
                    width: 10
                    radius: width/2
                    color: "#DBDDDD"
                }
            }

            ListModel {
                id: libraryModel1
                ListElement {
                    title: "A Masterpiece"
                    author: "Gabriel"
                }
                ListElement {
                    title: "Brilliance"
                    author: "Jens"
                }
                ListElement {
                    title: "Outstanding"
                    author: "Frederik"
                }
                ListElement {
                    title: "A Masterpiece"
                    author: "Gabriel"
                }
                ListElement {
                    title: "Brilliance"
                    author: "Jens"
                }
                ListElement {
                    title: "Outstanding"
                    author: "Frederik"
                }
                ListElement {
                    title: "A Masterpiece"
                    author: "Gabriel"
                }
                ListElement {
                    title: "Brilliance"
                    author: "Jens"
                }
                ListElement {
                    title: "Outstanding"
                    author: "Frederik"
                }
            }
        }
    }
}
  

Комментарии:

1. Привет, Рич, у меня такая же проблема. Вы нашли какое-либо решение? Спасибо. Криштиану

2. Я этого не сделал. Поддержка Qt: Спасибо, что обратились в службу поддержки Qt, если на вашем встроенном устройстве используется сенсорный экран, ввод для полосы прокрутки отключается при использовании сенсорного ввода, поскольку это не очень практично, и щелчок по экрану обычно предпочтительнее с помощью сенсорного ввода. Однако, если вы подключаете мышь к своему устройству, ввод работает для полосы прокрутки, в основном игнорируя ввод, который поступает не от настоящей мыши, но принимает его, когда используется настоящая мышь.