QQuickWidget сенсорный экран для перьевого ввода

Я пытаюсь ввести пером или пальцем с сенсорного экрана (Panasonic Toughbook). На стороне qml я не могу получить щелчок или нажатие ввода. Я пробовал TapHandler со всеми типами указателей и устройствами, но он не работает. Я могу щелкнуть пером, если использую QWidget (например, QPushButton), но qml не работает. Я тоже проверяю события. Я могу принимать события мыши для QQuickWidget, но не работает для qml.

import QtQuick 2.12

Item {
    id: root

    Rectangle {
        anchors.fill: parent
        color: "#bed3d4"
        focus: true

        TapHandler {
            enabled: true
            acceptedButtons: Qt.LeftButton
            onTapped: {
                console.log("Clicked")
            }
        }

        TapHandler {
            enabled: true
            acceptedPointerTypes: PointerDevice.AllPointerTypes
            acceptedDevices: PointerDevice.AllDevices
            onTapped: {
                console.log("Tapped")
            }
        }
    }
}

В этом коде нажатие работает, а нажатие - нет.


person barber    schedule 15.06.2020    source источник
comment
Насколько я знаю, TapHandler должен быть прикреплен к какому-либо элементу, чтобы заполнить его границы. На десктопе работает? Обновите свой вопрос и предоставьте минимальный воспроизводимый пример   -  person folibis    schedule 15.06.2020


Ответы (1)


Я понял, что для включения сенсорного ввода в QQuickWidget вам нужно включить флаг WA_AcceptTouchEvents с помощью setAttribute (Qt :: WA_AcceptTouchEvents).

person barber    schedule 19.08.2020