Hi

I have seen that bug report, but didn't understand at as "try Qt5.15". Just tried it and it seems to work mostly. Hovering also works. But there is a bug somewhere. On my Huawei, finger touch causes a hover event to start/end (happend in 5.14.2 as well). In the example, if you start hover, you can touch the tile once and it becomes red to indicate hovering, and a second touch ends it. I can also use my pen for hovering, and just like finger touch a press makes the tile permanently red. But with my pen I can't end hovering, I have to touch it with my finger for that.

I don't understand the problems with pen input in QtQuick. QTabletEvent works just fine, in QWidget and QtQuick. The engine just converts the event. Why not just use that, unlike HandlerPoint it supports tilt and tangetial pressure as well. It's just missing hovering, which Qt for some reason tied to QApplication/QWidget. And that code should be movable to QGuiApplication, the events come from the host after all, Qt is just processing them. That doesn't make sense to me (as someone who doesn't know much about the interals of this).

Am 20.04.2020 um 06:07 schrieb Shawn Rutledge:

On 19 Apr 2020, at 01:16, Thorsten Hofer-Schmitz 
<thorsten.schmitz.bn...@gmail.com> wrote:

Hi

I'm trying to handle the input of a stylus on a tablet. Qt has an example on 
how to do this using a QWidget-based application. I tested it on my tablet and 
everything works fine.

I would like to do this in QML/QtQuick. The documentation suggests that 
PointHandler, like this:

import QtQuick 2.14
import QtQuick.Window 2.14

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    PointHandler
    {
        acceptedDevices: PointerDevice.Stylus
        acceptedPointerTypes: PointerDevice.Pen
        onActiveChanged: console.log("Pen Input")
    }

}
It should work in 5.15: see also QTBUG-79660 and the tablet manual test in 
qtdeclarative/tests/manual/pointer.

I experimented with eventFilter's to intercept QTabletEvent's before they are 
converted into mouse events by the QQuickWindow (as far as I can tell). But 
unless there is a QWidget with WA_TabletTracking=true as target (and some other 
options as it seems, because just a QMainWindow with a widget isn't enough) I 
can't recieve TabletEnterProximity-events for hovering.
Those are currently not delivered to the main window, only to the application.  
So you still need a C++ subclass in Qt 5, as in 
qtbase/examples/widgets/widgets/tablet/tabletapplication.cpp.  I’m hoping to 
get more complete proximity event delivery in place in Qt 6.


_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to