Решение:
Установите для свойства startDragDistance значение, превышающее значение по умолчанию (10)
QGuiApplication::styleHints()->setStartDragDistance(100);
Объяснение:
Глядя на исходный код QQuickAbstractButton, можно найти метод:
void QQuickAbstractButtonPrivate :: handleMove (const QPointF & point)
void QQuickAbstractButtonPrivate::handleMove(const QPointF &point)
{
Q_Q(QQuickAbstractButton);
QQuickControlPrivate::handleMove(point);
setMovePoint(point);
q->setPressed(keepPressed || q->contains(point));
if (!pressed && autoRepeat)
stopPressRepeat();
else if (holdTimer > 0 && (!pressed || QLineF(pressPoint, point).length() > QGuiApplication::styleHints()->startDragDistance()))
stopPressAndHold();
}
Когдарасстояние от начальной точки до перемещенной точки превышает QGuiApplication::styleHints()->startDragDistance()
Порог stopPressAndHold()
называется отменой нажатия и удержания действия.