1. Introdução ambiental
Introdução do sistema operacional: win10 64 bit
Versão QT: 5.12.6
2. Fenômeno
Sobrecarregue os eventos do mouse relacionados a QGraphicsScene. Se você deseja obter as coordenadas do mouse atual, se você obter as coordenadas diretamente de mouseEvent, as coordenadas retornadas são todas 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
}
}
Três, a solução
/*
工程: ECRS
日期: 2021-01-02
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 鼠标移动事件
*/
void my_graphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
QGraphicsScene::mousePressEvent(mouseEvent);
qDebug()<<"坐标:"<<mouseEvent->scenePos();
}
O efeito final do programa é que a tela do vídeo é parcialmente ampliada e o quadro do mouse é usado para completá-lo em uma determinada área.