QT应用编程: 解决QGraphicsScene重写鼠标事件无法直接得到鼠标坐标问题

简介: QT应用编程: 解决QGraphicsScene重写鼠标事件无法直接得到鼠标坐标问题

一、环境介绍

操作系统介绍: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();
}

最终程序实现的效果是,  视频画面局部放大,使用鼠标框到某个区域完成。

image.png

目录
相关文章
|
2月前
|
开发框架 Linux API
Qt:构建高效且用户友好的跨平台应用
Qt:构建高效且用户友好的跨平台应用
|
2月前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
11天前
Qt鼠标事件
Qt鼠标事件
12 2
|
2月前
|
Windows 安全 C++
Qt字符串类应用与常用基本数据类型
Qt字符串类应用与常用基本数据类型
|
2月前
|
开发框架 物联网 云计算
Qt应用领域分析与实践
Qt应用领域分析与实践
71 0
|
2月前
|
XML 网络协议 关系型数据库
Qt框架概述与应用实例
Qt框架概述与应用实例
34 0
|
2月前
|
测试技术 API UED
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
88 1
|
2月前
|
存储 监控 图形学
【QT】GraphicsView、QGraphicsScene、QGraphicsEllipseItem的使用
【QT】GraphicsView、QGraphicsScene、QGraphicsEllipseItem的使用
112 0
|
2月前
|
Ubuntu 编译器 Linux
Ubuntu下Qt编程,从QT的安装到编写notepad
Ubuntu下Qt编程,从QT的安装到编写notepad
|
3天前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
10 1
Qt(C++)开发一款图片防盗用水印制作小工具