gpt4 book ai didi

c++ - 获取鼠标坐标 Qt OpenGL

转载 作者:太空狗 更新时间:2023-10-29 21:01:24 25 4
gpt4 key购买 nike

我有一个 openGL 小部件并且知道我可以按如下方式获取鼠标的坐标:

X = this->mapFromGlobal(QCursor::pos()).x();
Y = this->mapFromGlobal(QCursor::pos()).y();

假设我的鼠标位于小部件上的 (X, Y) 位置。现在我想在小部件上按下鼠标左键并将光标再次移动到小部件中的另一个位置(比如(X',Y')),然后松开鼠标左键。

问:如何保留(X,Y)和(X',Y')?

最佳答案

最简单的解决方案是将它们存储为成员,如下所示:

class MyGLWidget: public QGLWidget
{
// ...

private:
int xAtPress, yAtPress;
};

void MyGLWidget::mousePressEvent(QMouseEvent * event)
{
xAtPress = event->x();
yAtPress = event->y();
}

void MyGLWidget::mouseReleaseEvent(QMouseEvent * event)
{
int xAtRelease = event->x();
int yAtRelease = event->y();

// example code
int dx = xAtRelease - xAtPress;
int dy = yAtRelease - yAtPress;
translateObject(dx,dy);
}

注意:使用event->pos() 已经给了你鼠标在小部件坐标中的位置,它比使用mapFromGlobal(QCursor::pos()) 要好得多>

关于c++ - 获取鼠标坐标 Qt OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com