Здравствуйте, nen777w, Вы писали:
N>Столкнулся с такой проблемой. N>Есть у меня самодельный контрол у которого перегружены события mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent() N>Поведение такое: пользователь нажимает и начинает тащить пин мышкой, затем отпускает, при этом если нажимает не по пину (mousePressEvent()), то пин сам подскакивает под мышку. N>Понадобилось мне недавно добавить еще mouseDoubleClickEvent() что бы даблкликнув по контролу пользователь мог ввести значение пина. N>Но тут случилась такая засада... doubleClick то приходит... но перед ним приходят и mousePressEvent() и mouseReleaseEvent(), что не годится совсем. N>Есть ли нормальный способ избежать этого?
У QApplication есть проперти doubleClickInterval, startDragDistance, startDragTime. По-хорошему их нужно учитывать при реализации своего поведения. Тогда, по идее, ваша проблема разрулится сама собой. Остальное выше написали — надо отслеживать даблклик руками.
Резюмирую: если юзер не протащил мышь достаточное расстояение (startDragDistance), то не считать это операцией перетягивания.
А такое поведение вполне логично. Ибо, если юзер кликнет и не успеет кликнуть второй раз, то когда присылать press/release для первого клика?