[Interest] Qt for digital tabletop applications

Andrea Franceschini therealmorpheu5 at gmail.com
Wed Sep 18 11:41:28 CEST 2013


Hello there.

I've been developing digital tabletop applications for a while now. I
started back in  2008 with Qt 4.something and I clearly remember it
had no support (or very limited) for multi-touch, gestures, and stuff.
Besides, back then I also needed to support fiduciary markers, so I
just went ahead and rolled out my own solution made of a QGLWidget for
drawing, custom "widgets" that inherited from QWidget and could draw
themselves on the GL viewport (so little I did know about proxies back
then, but anyways), and a fairly sophisticated multi-finger gestures
framework that became wonky as deadlines approached. After that, enter
Qt's gestures, and I had no need for them for a while.

After this I went ahead and developed a number of what you'd call toy
examples in various languages and platforms, such as Processing, Open
Frameworks, and so on. Nothing really fancy, mainly demos and stuff to
elicit a wow-response, and besides, the most complex gestures I needed
for these toys were single-finger drags and taps: pretty easy, right?

A while ago I discovered Cinder and I suddently fell in love with it.
It fit my needs, it was C++, it had TUIO support for all those
hardware platform that I used to work with (mainly back-projected IR
tabletops like the Reactable and all that jazz) and it was something
new I wanted to learn. I've developed a couple of applications so far,
and I've been decently happy with it, except that there seems to be no
freely available gestural framework for C++ (to the best of my
knowledge, although I encourage you guys to point me at any if you
know them: I love Qt but usually the more options I have, the better).
Once again I had to roll out my own gestural framework. I had
literally zero time to do it and it turned out far better than I
expected, but still quite crappy (no priority support, no direct
precedences, pinch-to-zoom works like sand in the fuel tank, and so
on, for those interested).

Then I remembered that Qt had gestures, and as far as I can tell, a
pretty sophisticated framework at that, except that I haven't touched
Qt since 4.7, and even then I did no gestures at all, mainly plain old
GUI programming, so enter 5.1, I have no idea what the world looks
like now, except for Daniel's excellent TUIO support (if only for
fingers, but I promise I'll work on fiducials in the future :).

I've been reading around for a while and I've come across all this
graphics view and graphics scene business. I clearly remember, some
time in 2009 I think, asking whether regular QWidgets could be painted
in a GL viewport. The answer was something along the lines of "not yet
but soon…" and apparently soon is now. That much I know.

What I don't know is: would a combo of graphics(view|scene) work for
my needs? Basically I need to replicate what I've been doing so far
with big-loop-based applications (Processing's draw() anyone? Cinder
follows a similar concept, fyi) and I want to do it with Qt. As far as
I can tell, I just need to set up a QGraphicsView, associate it with a
GraphicsScene (inheriting from QGraphicsScene) in which I'd add all my
visual pizzazz and gestures, and I'm golden?

I'm quite confused right now but I have some time that I can spend on
it. I really want to use Qt, if only for the gestures, so any
hint/pointer/head-ups is enormourly appreciated.

(I'd give links to all those projects I mentioned but I'm not sure
it'd be worth it. If you want to see something, there's something in
my github account, like in the signature)

-- 
Andrea Franceschini
https://github.com/Morpheu5/



More information about the Interest mailing list