侧边栏壁纸
博主头像
三味的小站 博主等级

世界上没有偶然,有的只是必然的结果。

  • 累计撰写 63 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
Qt

QGraphicsItem不响应mouseReleaseEvent的问题

三味线
2019-06-18 / 0 评论 / 0 点赞 / 26 阅读 / 0 字

直接重写鼠标事件,遇到的问题是:只响应press事件,而move和release事件不响应。

解决方式是将item设为selectable或movable。

//构造函数中
this->setFlag(QGraphicsItem::ItemIsSelectable);
this->setAcceptedMouseButtons(Qt::LeftButton);
this->setAcceptHoverEvents(true);//重写hover事件需添加
void Rectangle::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        qDebug()<<"EVENT: "<<"MOUSE PRESS"<<endl;
    }
    BasicItemAbs::mousePressEvent(event);
}
void Rectangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
    qDebug()<<"EVENT: "<<"MOUSE MOVE"<<endl;
    BasicItemAbs::mouseMoveEvent(event);
}
void Rectangle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        qDebug()<<"EVENT: "<<"MOUSE RELEASE"<<endl;
    }
    BasicItemAbs::mouseReleaseEvent(event);
}

0

评论区