void myview::mouseMoveEvent(QMouseEvent* event)
{
viewPoint = event->pos();
scenePoint = mapToScene(viewPoint);
scenePointDispaly.setText("Coordinate:(" + QString::number(scenePoint.x()) + "," + QString::number(scenePoint.y()) + ")");
scenePointDispaly.setGeometry(QRect(1650, 0, 300, 30));
//qDebug() << "QString::number(scenePoint.x()) = " << QString::number(scenePoint.x()) << endl;
scenePointDispaly.setParent(this);
}
项目遇到一个将光标在scene的坐标显示到label,然后label加到scene中。如图已经重写了mouseMoveEvent事件,debug的时候也可以将位置信息xy打印出来,但调试的时候就是看不到显示坐标的标签,myview的构造函数里面也加上了setMouseTracking(true);搞不懂,后面发现把设置text等语句加到myview的构造函数里面就可以了(代码如下),不是很明白原理,在此记录一下
myview::myview(QWidget* parent)
: QGraphicsView(parent)
{
setMouseTracking(true);
scenePointDispaly.setText("Coordinate:(" + QString::number(scenePoint.x()) + "," + QString::number(scenePoint.y()) + ")");
scenePointDispaly.setGeometry(QRect(1650, 0, 300, 30));
//qDebug() << "QString::number(scenePoint.x()) = " << QString::number(scenePoint.x()) << endl;
scenePointDispaly.setParent(this);
}