当前位置: 代码迷 >> QT开发 >> 关于获取鼠标坐标的有关问题。
  详细解决方案

关于获取鼠标坐标的有关问题。

热度:14   发布时间:2016-04-25 03:49:33.0
关于获取鼠标坐标的问题。。


bool example_first::eventFilter(QObject* watched,QEvent* event)
{
x = this->width();
y = this->height();
size = (x > y) ? y/18 : x/18;
x -= size;
y -= size;
QMouseEvent *mouseEvent = (QMouseEvent *)event;
if(watched == label1)
{
if(event->type() == QEvent::MouseButtonRelease)
{
label1->setGeometry(QRect(mouseEvent->pos().x(), mouseEvent->pos().y(), size, size));
label21->setText(QString::number(mouseEvent->pos().x()));
label22->setText(QString::number(mouseEvent->pos().y()));
}
}
return QMainWindow::eventFilter(watched,event);
}



获取当前窗口的鼠标的坐标,但是,只有第一次获取的值是对的额,从第二次开始之后就变成错误的坐标,不知道是为什么?
获取鼠标坐标 setGeometry label设置图片

------解决方案--------------------
重写mouseMoveEvent
------解决方案--------------------
引用:
引用
重写mouseMoveEvent

不是要重写那个事件啊,我是想调用label的事件,鼠标在label上单击的时候才执行,移动这个label到鼠标release时的坐标

能不能定义全局变量,获取鼠标release时的坐标,然后鼠标释放时就执行label的事件。用update()可以吗??。。。。
------解决方案--------------------
重载mousePressEvent和mouseMoveEvent。通过相对值计算label移动的位置。
  相关解决方案