QT应用编程: 解决QGraphicsScene重写鼠标事件无法直接得到鼠标坐标问题
【摘要】
一、环境介绍
操作系统介绍:win10 64位
QT版本: 5.12.6
二、现象
重载QGraphicsScene相关的鼠标事件,想得到当前鼠标的坐标点,如果直接从mouseEvent取坐标,返回的坐标点全是0。
class my_graphicsScene : public QGraphicsScene{prot...
一、环境介绍
操作系统介绍:win10 64位
QT版本: 5.12.6
二、现象
重载QGraphicsScene相关的鼠标事件,想得到当前鼠标的坐标点,如果直接从mouseEvent取坐标,返回的坐标点全是0。
-
class my_graphicsScene : public QGraphicsScene
-
{
-
protected:
-
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent);
-
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent);
-
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent);
-
}
-
-
......
-
void my_graphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
-
{
-
//鼠标左键按下
-
if(mouseEvent->button()==Qt::LeftButton)
-
{
-
//记录鼠标按下的点
-
start_point=mouseEvent->pos(); //相对窗口坐标---->这里得到的坐标全是0
-
}
-
}
三、解决办法
-
/*
-
工程: ECRS
-
日期: 2021-01-02
-
作者: DS小龙哥
-
环境: win10 QT5.12.6 MinGW32
-
功能: 鼠标移动事件
-
*/
-
void my_graphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
-
{
-
QGraphicsScene::mousePressEvent(mouseEvent);
-
qDebug()<<"坐标:"<<mouseEvent->scenePos();
-
}
最终程序实现的效果是, 视频画面局部放大,使用鼠标框到某个区域完成。
文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。
原文链接:xiaolong.blog.csdn.net/article/details/112130645
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)