yeah, I just liked the name "sloppy click" :)
totally agree though, and I guess that's why I was asking for help.
I initially tried to read out how far the mouse is moving inside of the mouseMoveEvent but couldn't get it right.
I used:
setMouseTracking( True )
curPos = event.pos()

but curPos is not evaluated until after the mouse button is released the first time. That's why I implemented the drag event to access the coordinates through that. But, of course as you pointed out, I want to avoid the drag event until the mouse has moved a certain distance.

Do you have an example of how to read the cursor position in the mouseMoveEvent?

Cheers,
frank


On 4/16/12 3:57 PM, Bradley Smith wrote:

    in case somebody is interested:
    I've managed to implement "sloppy clicks", i.e. clicks during
    which the mouse pointer moves a little bit (happens a lot when
    using a wacom pen). This was a problem because the buttons need to
    be "dragable", and the moment the mouseMoveEvent started, the
    mouseReleaseEvent never got called. So even a 1 pixel shift which
    feels like a click to the user wouldn't result in the expected
    behaviour.


I don't think of it as sloppy clicks, but as not enough movement to start a drag. In the mouseMoveEvent handler, I would check that the manhattan distance over the 5 pixels and only then start the drag. I would also remove the check of the manhattan distance in the dropEvent handler. Even if the item is dragged away and then dropped exactly back at the start position, the operation should be seen as a drag/drop not a click. A click will occur only if the mouse is pressed and then released without ever moving more than 5 pixels from the press position.

  Bradley

_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to