Класс QDragMoveEvent
Класс QDragMoveEvent предоставляет событие, которое отправляется во время выполнения действия перетаскивания и перемещения. Подробнее...
| Заголовок: | #include <QDragMoveEvent> |
| qmake: | QT += gui |
| Наследуется от: | QDropEvent |
| Наследует: |
Открытые функции
| QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = DragMove) | |
| virtual | ~QDragMoveEvent() |
| void | accept(const QRect &rectangle) |
| void | accept() |
| QRect | answerRect() const |
| void | ignore(const QRect &rectangle) |
| void | ignore() |
Подробное описание
Виджет будет получать события drag move многократно, пока перетаскивание находится в пределах его границ, если он принимает события drop и события enter. Виджет должен проанализировать событие, чтобы определить, какой тип данных он предоставляет, и вызвать функцию accept(), чтобы принять падение, если это необходимо.
Прямоугольник, предоставленный функцией answerRect(), может использоваться для ограничения падений определёнными частями виджета. Например, мы можем проверить, пересекается ли прямоугольник с геометрией определённого дочернего виджета и вызывать acceptProposedAction() только в этом случае.
Обратите внимание, что этот класс наследует большую часть своей функциональности от QDropEvent.
См. также QDragEnterEvent, QDragLeaveEvent и QDropEvent.
Документация по функциям-членам
QDragMoveEvent::QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = DragMove)
Создаёт событие QDragMoveEvent необходимого типа, указывающее, что курсор находится в позиции pos внутри виджета.
Состояния мыши и клавиатуры задаются параметрами buttons и modifiers, а actions описывают типы операций перетаскивания и перемещения, которые возможны. Данные перетаскивания передаются в виде MIME-кодированной информации в data.
Предупреждение: Не пытайтесь создавать объекты QDragMoveEvent самостоятельно. Эти объекты зависят от внутреннего состояния Qt.
[virtual] QDragMoveEvent::~QDragMoveEvent()
Удаляет событие.
void QDragMoveEvent::accept(const QRect &rectangle)
То же самое, что и accept(), но также уведомляет, что будущие перемещения также будут приемлемы, если они останутся в пределах прямоугольника rectangle, заданного на виджете. Это может повысить производительность, но также может быть проигнорировано базовой системой.
Если прямоугольник пустой, события drag move будут отправляться непрерывно. Это полезно, если источник прокручивается в событии таймера.
void QDragMoveEvent::accept()
Это перегруженная функция.
Вызывает QDropEvent::accept().
QRect QDragMoveEvent::answerRect() const
Возвращает прямоугольник внутри виджета, где произойдёт падение, если оно будет принято. Вы можете использовать эту информацию для ограничения падений определёнными частями виджета.
void QDragMoveEvent::ignore(const QRect &rectangle)
Противное функции accept(const QRect&). Перемещения в пределах rectangle неприемлемы и будут проигнорированы.
void QDragMoveEvent::ignore()
Это перегруженная функция.
Вызывает QDropEvent::ignore().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qdragmoveevent.html