[Qt-interest] QGraphicsView with QGestureEvent

Raymond de Vries reedev at xs4all.nl
Tue Dec 8 09:08:15 CET 2009


Hi,

Ok, I can confirm this here too with your sample application as well as 
my own application. Fyi, I am using my own built 
qt-everywhere-opensource-src-4.6.0 on Windows 7, Visual Studio 9 2008. 
I'm sorry that I did not get your (by Denis) first remark to grab the 
getures with the *viewport*, I was doing it on the graphicsview directly 
(which resulted in the same asserion btw).

Any hints or tips are welcome.

best regards
Raymond



Elias Capito wrote:
>
> Thanks for your reply Denis.
>
> I have add the all gesture to the viewport with 
> viewport()->grabGesture(...) in QGraphicsView and to my item, but when 
> I debug my application any gesture are delivered to the items.
>
> I have tested with QGraphicsView and my own herited class of 
> QGraphicsView.
>
> I have the following error when I make a gesture on an item and after 
> i touch the viewport (not an item) : *ASSERT: "!isEmpty<>" ..
>
> *
> I add the source code* *in attachement*.
> *
>
> Best regards
>
> 2009/12/7 Raymond de Vries <reedev at xs4all.nl <mailto:reedev at xs4all.nl>>
>
>     Hi Denis,
>
>     I was also following this thread and I tried the same, with
>     QGraphicsWebView but even with your advice, I don't get the
>     gesture events...
>
>     This is what you mean to do:
>     MTCanvas : public QGraphicsView
>     constructor
>      viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
>      grabGesture(Qt::PanGesture);
>      grabGesture(Qt::PinchGesture);
>      grabGesture(Qt::SwipeGesture);
>      etc
>     MTCancas::event() does receive Gesture events
>
>     MTWebBrowser : public QGraphicsWebView
>     constructor
>      setAcceptTouchEvents(true);
>      grabGesture(Qt::PanGesture);
>      grabGesture(Qt::PinchGesture);
>      grabGesture(Qt::SwipeGesture);
>      etc
>     MTWebBrowser::event(QEvent *event) does not receive Gesture events
>
>     Is this supposed to work?
>
>     Thanks a lot, best regards
>     Raymond
>
>
>
>
>
>     Denis Dzyubenko wrote:
>
>         Hi Elias,
>
>         2009/12/3 Elias Capito <elias.capito at gmail.com
>         <mailto:elias.capito at gmail.com>>:
>          
>
>             I want to do a multitouch application.
>
>             I have a problem with the QGestureEvent on a
>             QGraphicsObject item . I use
>             "grabGesture" on my item in constructor and i debug to see
>             the input event.
>
>             When I run the application, the QGestureEvent never
>             appear, but if I use
>             QTouchEvent on item in place of QGestureEvent, with
>             "setAcceptTouchEvent",
>             in my debug I can see the touch event.
>
>             If I use QGestureEvent with a simple QWidget and I run it,
>             I can see the
>             gesture event, so i think it's correct.
>
>             It's the first time, that I use QGraphicsView, so I think
>             i have miss
>             something.
>
>             Anyone have an idea, why the QGestureEvent not appear on
>             my item ?
>                
>
>
>         right now to get gesture events on a QGraphicsObject it should
>         subscribe to a gesture _and_ the viewport of the graphicsview
>         should
>         also explicitly subscribe to the same gesture. Apparently it isn't
>         documented right now, sorry about that. Anyway, I this will be
>         improved in future versions of Qt so that you will not have to
>         do that
>         manually (thank god I forgot to document that, so we can
>         change the
>         behavior ;) )
>
>         However for now you need to make sure the viewport also
>         subscribes to
>         the same gesture type.
>
>          
>
>
>




More information about the Qt-interest-old mailing list