C++ 跳过qgraphics场景中qgraphicsitem的鼠标事件
我知道如何将事件从qgraphics场景传递到qgraphics项目,但问题是该项目正在执行场景的鼠标事件 例如,在下面的代码中,当按下项目时,输出为“自定义场景已按下”C++ 跳过qgraphics场景中qgraphicsitem的鼠标事件,c++,qt,C++,Qt,我知道如何将事件从qgraphics场景传递到qgraphics项目,但问题是该项目正在执行场景的鼠标事件 例如,在下面的代码中,当按下项目时,输出为“自定义场景已按下” #包括 类CustomScene:publicQgraphicscene { 受保护的: 无效鼠标压力事件(QGraphicsSceneMouseEvent*事件) { if(itemAt(event->pos()) qgraphicscene::mousePressEvent((事件)); 其他的 qDebug()请参阅以下
#包括
类CustomScene:publicQgraphicscene
{
受保护的:
无效鼠标压力事件(QGraphicsSceneMouseEvent*事件)
{
if(itemAt(event->pos())
qgraphicscene::mousePressEvent((事件));
其他的
qDebug()请参阅以下文件:
返回鼠标光标在项目坐标中的位置
这意味着,如果鼠标距离项目的上边框和左边框10像素,则无论项目在场景中的何处,都将获得(10,10)作为坐标
您需要的是:
返回场景坐标中的鼠标光标位置
将您的if
-语句更改为:
if(itemAt(event->scenePos()))
QGraphicsScene::mousePressEvent((event));
else
qDebug() << "Custom scene clicked.";
if(itemAt(event->scenePos())
qgraphicscene::mousePressEvent((事件));
其他的
qDebug()
if(itemAt(event->scenePos()))
QGraphicsScene::mousePressEvent((event));
else
qDebug() << "Custom scene clicked.";