Keeping in touch…
May 22, 2009 by Bradley T. Hughes | Comments
(pun intended)
So, it's been a while since my original blog on touch support in Qt, so I thought I would provide an update on what's been going on in that area.
Code
Simon was so gracious to start mirroring the clone Denis and I made to add gesture and touch support to Qt. This clone includes the gesture API that Denis has been working on as well. At the moment, Windows 7 is the only operating system out there that provides a multi-point touch API for to build on-top of, so multi-point touch only works on Windows 7 at the moment. We're investigating how to support other platforms as well as 3rd party multi-point touch solutions. I'm hoping that someone out there with experience in this area can help us integrate support for these systems.
Behavioral Change
In my last blog, I asked the question "what about touch events that affect multiple widgets or QGraphicsItems?" The answer I gave at the time was the easiest to implement, but as discussions here in the hallway and via email showed, confining touch events to a single widget or item at a time is just too limiting. Multi-point touch is not just about pinching and zooming. People want to use both hands to interact with the UI.
So we changed that. The branch we have supports multiple, implicit touch "grabs." This means that it's possible to interact with several widgets and/or QGraphicsItems on the screen at the same time. There are several gotchas though:
- No explicit grab support. We really don't have a good answer yet as to what should happen if you call QWidget::grabMouse().
- No popup support (see above).
- Recursing into the event loop (i.e. any of the exec() functions in Qt) from a touch event handler can and most likely will break touch event delivery. This is because we need to deliver multiple touch events at a time, and recursing essentially prevents other events from being sent. Again, we don't have a good answer to if or how this should work.
Teaser
So, the good stuff. Here are a few teasers of multi-point touch working in Qt on the Windows 7 Release Candidate. The first video is a bunch of modified QDials (I hope to add this example to Qt soon), the second is 2 custom QGraphicsItems in a QGraphicsView (see examples/touch/knobs).
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.5 Now!
Download the latest release here: www.qt.io/download.
Qt 6.5 is the latest Long-Term-Support release with all you need for C++ cross-platform app development.
Explore Qt World
Check our Qt demos and case studies in the virtual Qt World
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Näytä tämä julkaisu Instagramissa.Henkilön Qt (@theqtcompany) jakama julkaisu