OK, thanks for the feedback. A profile showed that it was my code after all and setTransform is indeed plenty fast. However calls to setTransform definitely need to be coalesced on a timer or it lags behind.
Thanks! > On Apr 6, 2017, at 8:40 PM, Ch'Gans <chg...@gna.org> wrote: > > On 7 April 2017 at 15:02, Patrick Stinson <patrickk...@gmail.com > <mailto:patrickk...@gmail.com>> wrote: >> >>> On Apr 6, 2017, at 7:57 PM, Ch'Gans <chg...@gna.org> wrote: >>> >>> On 7 April 2017 at 14:38, Patrick Stinson <patrickk...@gmail.com> wrote: >>>> I am implementing a pan and zoom on pinch via raw touch events and am >>>> finding setTransform() to be very slow, even with an empty scene. The >>>> touch events are backed up in a queue by slow synchronous calls to >>>> QGraphicsView.setTransform(). >>> >>> If it's slow with an empty scene, then you have a problem that has >>> nothing to do with QTransform. Maybe you have a cascade of events that >>> bounce on each other until it stabilise... >>> Maybe your synchronous calls are too frequent. I would advise to use >>> the animation framework to do this sort of things. >> >> This is possible. I will check further. >> >>> >>> Whats your environment, which HW, which OS, which Qt, … >> >> I am using Qt-5.8.1 and PyQt-5.8.1, latest sierra with latest MacBook pro >> >>> >>>> >>>> Without stripping down my code into a runnable example, is setTransform >>>> considered to be too slow for 60Hz frame-rate updates from touch events? >>>> If so, is there a better way to smoothly zoom and pan the graphics view? >>> >>> Use the animation framework. no need for a queue mechanism, should >>> work without any problems unless you hardware is not powerful enough. >>> >> >> How would one animate the transform without a "transform" property? Or am I >> missing something? (I’ve been away from qt for a while - since before the >> animation framework) >> > > I didn't say w/o a "transform" property, i said w/o a queue. My point > is that using the animation framework will likely be easier and gives > smoother result than using QTimer and a "command queue". > BTW, you cannot animate the "transform" property without providing > your own interpolation function. > But you can work around that by animating scale factor and translation. > > PS: I've just found this > https://wiki.qt.io/Smooth_Zoom_In_QGraphicsView > <https://wiki.qt.io/Smooth_Zoom_In_QGraphicsView>, haven't tried it, but > this might help you in your quest. > > Chris > >> >>> Chris >>> >>>> >>>> Thanks! >>>> -P >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest@qt-project.org <mailto:Interest@qt-project.org> >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> <http://lists.qt-project.org/mailman/listinfo/interest>
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest