![]() |
Qt 6.x
The Qt SDK
|
#include <qquicktaphandler_p.h>
Public Types | |
enum | GesturePolicy { DragThreshold , WithinBounds , ReleaseWithinBounds , DragWithinBounds } |
enum | ExclusiveSignal { NotExclusive = 0 , SingleTap = 1 << 0 , DoubleTap = 1 << 1 } |
![]() | |
enum | GrabPermission { TakeOverForbidden = 0x0 , CanTakeOverFromHandlersOfSameType = 0x01 , CanTakeOverFromHandlersOfDifferentType = 0x02 , CanTakeOverFromItems = 0x04 , CanTakeOverFromAnything = 0x0F , ApprovesTakeOverByHandlersOfSameType = 0x10 , ApprovesTakeOverByHandlersOfDifferentType = 0x20 , ApprovesTakeOverByItems = 0x40 , ApprovesCancellation = 0x80 , ApprovesTakeOverByAnything = 0xF0 } |
Public Member Functions | |
QQuickTapHandler (QQuickItem *parent=nullptr) | |
\qmltype TapHandler \instantiates QQuickTapHandler \inherits SinglePointHandler \inqmlmodule QtQuick | |
bool | isPressed () const |
int | tapCount () const |
qreal | timeHeld () const |
qreal | longPressThreshold () const |
\qmlproperty real QtQuick::TapHandler::longPressThreshold | |
void | setLongPressThreshold (qreal longPressThreshold) |
GesturePolicy | gesturePolicy () const |
void | setGesturePolicy (GesturePolicy gesturePolicy) |
\qmlproperty enumeration QtQuick::TapHandler::gesturePolicy | |
QQuickTapHandler::ExclusiveSignals | exclusiveSignals () const |
void | setExclusiveSignals (QQuickTapHandler::ExclusiveSignals newexclusiveSignals) |
\qmlproperty enumeration QtQuick::TapHandler::exclusiveSignals | |
![]() | |
QQuickSinglePointHandler (QQuickItem *parent=nullptr) | |
\qmltype SinglePointHandler \qmlabstract \preliminary \instantiates QQuickSinglePointHandler \inherits PointerDeviceHandler \inqmlmodule QtQuick | |
QQuickHandlerPoint | point () const |
![]() | |
QQuickPointerDeviceHandler (QQuickItem *parent=nullptr) | |
\qmltype PointerDeviceHandler \qmlabstract | |
QInputDevice::DeviceTypes | acceptedDevices () const |
QPointingDevice::PointerTypes | acceptedPointerTypes () const |
Qt::MouseButtons | acceptedButtons () const |
\qmlproperty flags QtQuick::PointerDeviceHandler::acceptedButtons | |
Qt::KeyboardModifiers | acceptedModifiers () const |
![]() | |
QQuickPointerHandler (QQuickItem *parent=nullptr) | |
\qmltype PointerHandler \qmlabstract | |
~QQuickPointerHandler () | |
bool | enabled () const |
\qmlproperty bool QtQuick::PointerHandler::enabled | |
void | setEnabled (bool enabled) |
bool | active () const |
\readonly \qmlproperty bool QtQuick::PointerHandler::active | |
QQuickItem * | target () const |
\qmlproperty Item QtQuick::PointerHandler::target | |
void | setTarget (QQuickItem *target) |
QQuickItem * | parentItem () const |
\qmlproperty Item QtQuick::PointerHandler::parent | |
void | setParentItem (QQuickItem *p) |
void | handlePointerEvent (QPointerEvent *event) |
GrabPermissions | grabPermissions () const |
\qmlproperty flags QtQuick::PointerHandler::grabPermissions | |
void | setGrabPermissions (GrabPermissions grabPermissions) |
qreal | margin () const |
\qmlproperty real PointerHandler::margin | |
void | setMargin (qreal pointDistanceThreshold) |
int | dragThreshold () const |
\qmlproperty int PointerHandler::dragThreshold | |
void | setDragThreshold (int t) |
void | resetDragThreshold () |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
![]() | |
QQmlParserStatus () | |
virtual | ~QQmlParserStatus () |
virtual void | classBegin ()=0 |
Invoked after class creation, but before any properties have been set. | |
virtual void | componentComplete ()=0 |
Invoked after the root component that caused this instantiation has completed construction. | |
Protected Member Functions | |
void | onGrabChanged (QQuickPointerHandler *grabber, QPointingDevice::GrabTransition transition, QPointerEvent *ev, QEventPoint &point) override |
Notification that the grab has changed in some way which is relevant to this handler. | |
void | timerEvent (QTimerEvent *event) override |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
bool | wantsEventPoint (const QPointerEvent *event, const QEventPoint &point) override |
Returns true if the given point (as part of event) could be relevant at all to this handler, as a preliminary check. | |
void | handleEventPoint (QPointerEvent *event, QEventPoint &point) override |
![]() | |
QQuickSinglePointHandler (QQuickSinglePointHandlerPrivate &dd, QQuickItem *parent) | |
bool | wantsPointerEvent (QPointerEvent *event) override |
It is the responsibility of this function to decide whether the event could be relevant at all to this handler, as a preliminary check. | |
void | handlePointerEventImpl (QPointerEvent *event) override |
This function can be overridden to implement whatever behavior a specific subclass is intended to have: | |
virtual void | handleEventPoint (QPointerEvent *event, QEventPoint &point) |
QEventPoint & | currentPoint (QPointerEvent *ev) |
void | onGrabChanged (QQuickPointerHandler *grabber, QPointingDevice::GrabTransition transition, QPointerEvent *event, QEventPoint &point) override |
Notification that the grab has changed in some way which is relevant to this handler. | |
void | setIgnoreAdditionalPoints (bool v=true) |
void | moveTarget (QPointF pos, QEventPoint &point) |
void | setPointId (int id) |
![]() | |
QQuickPointerDeviceHandler (QQuickPointerDeviceHandlerPrivate &dd, QQuickItem *parent=nullptr) | |
bool | wantsPointerEvent (QPointerEvent *event) override |
It is the responsibility of this function to decide whether the event could be relevant at all to this handler, as a preliminary check. | |
![]() | |
QQuickPointerHandler (QQuickPointerHandlerPrivate &dd, QQuickItem *parent) | |
void | classBegin () override |
Overridden only because QQmlParserStatus requires it. | |
void | componentComplete () override |
Overridden from QQmlParserStatus to ensure that parentItem() sets its cursor if this handler's \l cursorShape property has been set. | |
bool | event (QEvent *) override |
QPointerEvent * | currentEvent () |
virtual bool | wantsPointerEvent (QPointerEvent *event) |
It is the responsibility of this function to decide whether the event could be relevant at all to this handler, as a preliminary check. | |
virtual bool | wantsEventPoint (const QPointerEvent *event, const QEventPoint &point) |
Returns true if the given point (as part of event) could be relevant at all to this handler, as a preliminary check. | |
virtual void | handlePointerEventImpl (QPointerEvent *event) |
This function can be overridden to implement whatever behavior a specific subclass is intended to have: | |
void | setActive (bool active) |
virtual void | onTargetChanged (QQuickItem *oldTarget) |
virtual void | onActiveChanged () |
virtual void | onGrabChanged (QQuickPointerHandler *grabber, QPointingDevice::GrabTransition transition, QPointerEvent *event, QEventPoint &point) |
Notification that the grab has changed in some way which is relevant to this handler. | |
virtual bool | canGrab (QPointerEvent *event, const QEventPoint &point) |
Check whether it's OK to take an exclusive grab of the point. | |
virtual bool | approveGrabTransition (QPointerEvent *event, const QEventPoint &point, QObject *proposedGrabber) |
Check this handler's rules to see if \l proposedGrabber will be allowed to take the exclusive grab. | |
void | setPassiveGrab (QPointerEvent *event, const QEventPoint &point, bool grab=true) |
Acquire or give up a passive grab of the given point, according to the grab state. | |
bool | setExclusiveGrab (QPointerEvent *ev, const QEventPoint &point, bool grab=true) |
Acquire or give up the exclusive grab of the given point, according to the grab state, and subject to the rules: canGrab(), and the rule not to relinquish another handler's grab. | |
void | cancelAllGrabs (QPointerEvent *event, QEventPoint &point) |
Cancel any existing grab of the given point. | |
QPointF | eventPos (const QEventPoint &point) const |
bool | parentContains (const QEventPoint &point) const |
Returns true if margin() > 0 and point is within the margin beyond QQuickItem::boundingRect(), or else returns QQuickItem::contains() QEventPoint::position() effectively (because parentContains(scenePosition) calls QQuickItem::mapFromScene()). | |
bool | parentContains (const QPointF &scenePosition) const |
Returns true if scenePosition is within the margin() beyond QQuickItem::boundingRect() (if margin > 0), or parentItem() contains scenePosition according to QQuickItem::contains(). | |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Properties | |
bool | pressed |
int | tapCount |
qreal | timeHeld |
qreal | longPressThreshold |
GesturePolicy | gesturePolicy |
QQuickTapHandler::ExclusiveSignals | exclusiveSignals |
![]() | |
QQuickHandlerPoint | point |
![]() | |
QInputDevice::DeviceTypes | acceptedDevices |
QPointingDevice::PointerTypes | acceptedPointerTypes |
Qt::MouseButtons | acceptedButtons |
Qt::KeyboardModifiers | acceptedModifiers |
![]() | |
bool | enabled |
bool | active |
QQuickItem * | target |
QQuickItem * | parent |
GrabPermissions | grabPermissions |
qreal | margin |
int | dragThreshold |
![]() | |
QString | objectName |
the name of this object | |
Additional Inherited Members | |
![]() | |
void | setAcceptedDevices (QInputDevice::DeviceTypes acceptedDevices) |
\qmlproperty flags PointerDeviceHandler::acceptedDevices | |
void | setAcceptedPointerTypes (QPointingDevice::PointerTypes acceptedPointerTypes) |
\qmlproperty flags PointerDeviceHandler::acceptedPointerTypes | |
void | setAcceptedButtons (Qt::MouseButtons buttons) |
void | setAcceptedModifiers (Qt::KeyboardModifiers acceptedModifiers) |
\qmlproperty flags PointerDeviceHandler::acceptedModifiers | |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
Definition at line 27 of file qquicktaphandler_p.h.
Enumerator | |
---|---|
NotExclusive | |
SingleTap | |
DoubleTap |
Definition at line 49 of file qquicktaphandler_p.h.
Enumerator | |
---|---|
DragThreshold | |
WithinBounds | |
ReleaseWithinBounds | |
DragWithinBounds |
Definition at line 41 of file qquicktaphandler_p.h.
|
explicit |
\qmltype TapHandler \instantiates QQuickTapHandler \inherits SinglePointHandler \inqmlmodule QtQuick
Handler for taps and clicks.
TapHandler is a handler for taps on a touchscreen or clicks on a mouse.
Detection of a valid tap gesture depends on \l gesturePolicy. The default value is DragThreshold, which requires the press and release to be close together in both space and time. In this case, DragHandler is able to function using only a passive grab, and therefore does not interfere with event delivery to any other Items or Input Handlers. So the default gesturePolicy is useful when you want to modify behavior of an existing control or Item by adding a TapHandler with bindings and/or JavaScript callbacks.
Note that buttons (such as QPushButton) are often implemented not to care whether the press and release occur close together: if you press the button and then change your mind, you need to drag all the way off the edge of the button in order to cancel the click. For this use case, set the \l gesturePolicy to TapHandler.ReleaseWithinBounds
.
For multi-tap gestures (double-tap, triple-tap etc.), the distance moved must not exceed QStyleHints::mouseDoubleClickDistance() with mouse and QStyleHints::touchDoubleTapDistance() with touch, and the time between taps must not exceed QStyleHints::mouseDoubleClickInterval().
Definition at line 56 of file qquicktaphandler.cpp.
References qApp.
|
signal |
Referenced by QQuickTreeView::QQuickTreeView(), QQuickTableViewPrivate::init(), and timerEvent().
|
inline |
Definition at line 70 of file qquicktaphandler_p.h.
|
inline |
Definition at line 67 of file qquicktaphandler_p.h.
|
signal |
|
overrideprotectedvirtual |
Reimplemented from QQuickSinglePointHandler.
Definition at line 121 of file qquicktaphandler.cpp.
References QQuickPointerDeviceHandler::acceptedButtons, DragThreshold, QQuickSinglePointHandler::handleEventPoint(), QQuickDeliveryAgentPrivate::isTouchEvent(), Qt::NoButton, QQuickSinglePointHandler::point, QEventPoint::Pressed, and QEventPoint::Released.
|
inline |
Definition at line 59 of file qquicktaphandler_p.h.
Referenced by QQuickSelectionRectanglePrivate::QQuickSelectionRectanglePrivate().
|
signal |
Referenced by QQuickSelectionRectanglePrivate::QQuickSelectionRectanglePrivate(), and timerEvent().
qreal QQuickTapHandler::longPressThreshold | ( | ) | const |
\qmlproperty real QtQuick::TapHandler::longPressThreshold
The time in seconds that an \l eventPoint must be pressed in order to trigger a long press gesture and emit the \l longPressed() signal. If the point is released before this time limit, a tap can be detected if the \l gesturePolicy constraint is satisfied. The default value is QStyleHints::mousePressAndHoldInterval() converted to seconds.
Definition at line 154 of file qquicktaphandler.cpp.
|
signal |
|
overrideprotectedvirtual |
Notification that the grab has changed in some way which is relevant to this handler.
true
.The available cursor shapes are: \list
The default value is not set, which allows the \l {QQuickItem::cursor()}{cursor} of \l parent item to appear. This property can be reset to the same initial condition by setting it to undefined.
undefined
, if you read the value it will return Qt.ArrowCursor
.The grabber (subject) will be the Input Handler whose state is changing, or null if the state change regards an Item. The transition (verb) tells what happened. The point (object) is the \l eventPoint that was grabbed or ungrabbed. QQuickDeliveryAgent calls this function. The Input Handler must react in whatever way is appropriate, and must emit the relevant signals (for the benefit of QML code). A subclass is allowed to override this virtual function, but must always call its parent class's implementation in addition to (usually after) whatever custom behavior it implements.
Reimplemented from QQuickSinglePointHandler.
Definition at line 433 of file qquicktaphandler.cpp.
References QPointingDevice::CancelGrabExclusive, QPointingDevice::CancelGrabPassive, QQuickSinglePointHandler::onGrabChanged(), QQuickSinglePointHandler::point, and QEventPoint::Released.
|
signal |
Referenced by QQuickSelectionRectanglePrivate::QQuickSelectionRectanglePrivate(), QQuickTreeViewDelegate::QQuickTreeViewDelegate(), and QQuickTableViewPrivate::init().
|
signal |
void QQuickTapHandler::setExclusiveSignals | ( | QQuickTapHandler::ExclusiveSignals | exc | ) |
\qmlproperty enumeration QtQuick::TapHandler::exclusiveSignals
Determines the exclusivity of the singleTapped() and doubleTapped() signals.
\value NotExclusive (the default) singleTapped() and doubleTapped() are emitted immediately when the user taps once or twice, respectively.
\value SingleTap singleTapped() is emitted immediately when the user taps once, and doubleTapped() is never emitted.
\value DoubleTap doubleTapped() is emitted immediately when the user taps twice, and singleTapped() is never emitted.
\value (SingleTap | DoubleTap) Both signals are delayed until QStyleHints::mouseDoubleClickInterval(), such that either singleTapped() or doubleTapped() can be emitted, but not both. But if 3 or more taps occur within mouseDoubleClickInterval
, neither signal is emitted.
Definition at line 326 of file qquicktaphandler.cpp.
References emit.
void QQuickTapHandler::setGesturePolicy | ( | QQuickTapHandler::GesturePolicy | gesturePolicy | ) |
\qmlproperty enumeration QtQuick::TapHandler::gesturePolicy
The spatial constraint for a tap or long press gesture to be recognized, in addition to the constraint that the release must occur before \l longPressThreshold has elapsed. If these constraints are not satisfied, the \l tapped signal is not emitted, and \l tapCount is not incremented. If the spatial constraint is violated, \l pressed transitions immediately from true to false, regardless of the time held.
The gesturePolicy
also affects grab behavior as described below.
\table \header
TapHandler.DragThreshold
Grab on press: passive DragThreshold
is especially useful to augment existing behavior: it reacts to tap/click/long-press even when another item or handler is already reacting, perhaps even in a different layer of the UI. The following snippet shows one TapHandler as used in one component; but if we stack up two instances of the component, you will see the handlers in both of them react simultaneously when a press occurs over both of them, because the passive grab does not stop event propagation: \quotefromfile pointerHandlers/tapHandlerOverlappingButtons.qml \skipto Item \printuntil component Button \skipto TapHandler \printuntil } \skipuntil Text { \skipuntil } \printuntil Button \printuntil Button \printuntil }\row
TapHandler.WithinBounds
Grab on press: exclusive parent
Item, the tap gesture is canceled. The TapHandler will take the \l {QPointerEvent::setExclusiveGrabber}{exclusive grab} on press, but will release the grab as soon as the boundary constraint is no longer satisfied. \row
TapHandler.ReleaseWithinBounds
Grab on press: exclusive parent
Item, a tap gesture is not recognized. This corresponds to typical behavior for button widgets: you can cancel a click by dragging outside the button, and you can also change your mind by dragging back inside the button before release. Note that it's necessary for TapHandler to take the \l {QPointerEvent::setExclusiveGrabber}{exclusive grab} on press and retain it until release in order to detect this gesture. \row
TapHandler.DragWithinBounds
Grab on press: exclusive parent
item, while the \l timeHeld property keeps counting, and the \l longPressed() signal will be emitted regardless of drag distance. However, like WithinBounds
, if the point leaves the bounds, the tap gesture is \l {PointerHandler::}{canceled()}, \l active() becomes false
, and \l timeHeld stops counting. This is suitable for implementing press-drag-release components, such as menus, in which a single TapHandler detects press, timeHeld
drives an "opening" animation, and then the user can drag to a menu item and release, while never leaving the bounds of the parent scene containing the menu. This value was added in Qt 6.3. The \l {Qt Quick Examples - Pointer Handlers} demonstrates some use cases for these.
gesturePolicy
is appropriate. If you cannot fix it by changing gesturePolicy
, some cases are better served by adjusting \l {PointerHandler::}{grabPermissions}, either in this handler, or in another handler that should prevent TapHandler from reacting. Definition at line 294 of file qquicktaphandler.cpp.
References emit, gesturePolicy, and gesturePolicyChanged().
Referenced by QQuickSelectionRectanglePrivate::createHandle(), and QQuickTreeViewDelegatePrivate::updateIndicatorPointerHandlers().
Definition at line 159 of file qquicktaphandler.cpp.
References emit, longPressThreshold, longPressThresholdChanged(), and qRound().
|
signal |
Referenced by QQuickTableViewPrivate::init(), and timerEvent().
|
inline |
Definition at line 61 of file qquicktaphandler_p.h.
|
signal |
|
signal |
Referenced by QQuickSelectionRectanglePrivate::QQuickSelectionRectanglePrivate(), and QQuickTreeViewDelegatePrivate::updateIndicatorPointerHandlers().
|
inline |
Definition at line 62 of file qquicktaphandler_p.h.
|
signal |
|
overrideprotectedvirtual |
This event handler can be reimplemented in a subclass to receive timer events for the object.
QTimer provides a higher-level interface to the timer functionality, and also more general information about timers. The timer event is passed in the event parameter.
Reimplemented from QObject.
Definition at line 174 of file qquicktaphandler.cpp.
References DoubleTap, doubleTapped(), emit, longPressed(), QObject::objectName, Q_ASSERT, qCDebug, SingleTap, singleTapped(), QBasicTimer::stop(), and QBasicTimer::timerId().
|
overrideprotectedvirtual |
Returns true
if the given point (as part of event) could be relevant at all to this handler, as a preliminary check.
If you override this function, you should call the immediate parent class implementation (and return false
if it returns false
); that in turn calls its parent class implementation, and so on.
In particular, the bounds checking is done here: the base class QQuickPointerHandler::wantsEventPoint() calls parentContains(point) (which allows the flexibility promised by margin(), QQuickItem::contains() and QQuickItem::containmentMask()). Pointer Handlers can receive QEventPoints that are outside the parent item's bounds: this allows some flexibility for dealing with multi-point gestures in which one or more fingers have strayed outside the bounds, and yet the gesture is still unambiguously intended for the target() item.
You should not generally react to the event or point here, but it's ok to set state to remember what needs to be done in your overridden handlePointerEventImpl() or QQuickSinglePointHandler::handleEventPoint().
Reimplemented from QQuickPointerHandler.
Definition at line 68 of file qquicktaphandler.cpp.
References DragThreshold, DragWithinBounds, QQuickHandlerPoint::id, QElapsedTimer::invalidate(), QQuickDeliveryAgentPrivate::isMouseEvent(), QQuickDeliveryAgentPrivate::isTabletEvent(), QQuickDeliveryAgentPrivate::isTouchEvent(), QQuickPointerHandler::parentContains(), QQuickSinglePointHandler::point, QEventPoint::Pressed, QEventPoint::Released, ReleaseWithinBounds, ret, QEventPoint::Stationary, QBasicTimer::stop(), this, QEventPoint::Unknown, QEventPoint::Updated, and WithinBounds.
Referenced by QQuickTableViewTapHandler::wantsEventPoint().
|
readwrite |
Definition at line 120 of file qquicktaphandler_p.h.
|
readwrite |
Definition at line 120 of file qquicktaphandler_p.h.
Referenced by setGesturePolicy().
|
readwrite |
Definition at line 120 of file qquicktaphandler_p.h.
Referenced by setLongPressThreshold().
|
read |
Definition at line 120 of file qquicktaphandler_p.h.
|
read |
Definition at line 120 of file qquicktaphandler_p.h.
|
read |
Definition at line 120 of file qquicktaphandler_p.h.