QT笔记- QGraphicsView视图- item拖动事件

说明

        在QGraphicsView视图下,对item的鼠标左键的拖动事件由函数mouseMoveEvent()接收。实现拖动功能需要设置item为"可选中"和"可拖动,该设置通过函数setFlags()实现。

函数

  1. virtual void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent * event)
  2. void QGraphicsItem::setFlags(GraphicsItemFlags flags)

释义

  1. 鼠标移动(拖动)事件。重新实现该函数即可接收到鼠标的item拖动事件。通过函数event->pos()获得鼠标在item中的当前坐标。
  2. 设置标记。枚举类型GraphicsItemFlags包含了一些可设置的item功能标记,这些功能可叠加设置。见下表
说明
QGraphicsItem::ItemIsSelectable 可选中
QGraphicsItem::ItemIsMovable 可移动
QGraphicsItem::ItemIsFocusable 可获得焦点

示例

...

//设置item可选中且可移动
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable);

...

void mouseMoveEvent(QGraphicsSceneMouseEvent * event){
    cout << "mouseMoveEvent - "
         << (float)(event->pos().x()) << ","
         << (float)(event->pos().y()) << endl;
    QGraphicsItem::mouseMoveEvent(event);
}

你可能感兴趣的:(qt,开发语言,c++)