我有一个OpenGL小部件,并且知道可以按照以下方式获取鼠标的坐标:
让我们想象一下我的鼠标在小部件上的(X,Y)位置。现在我想要按下小部件上的鼠标左键,并将光标移动到另一个位置,再次在小部件上(假设为(X',Y')),然后松开鼠标左键。
问题:如何保持(X,Y)和(X',Y')的值?
X = this->mapFromGlobal(QCursor::pos()).x();
Y = this->mapFromGlobal(QCursor::pos()).y();
让我们想象一下我的鼠标在小部件上的(X,Y)位置。现在我想要按下小部件上的鼠标左键,并将光标移动到另一个位置,再次在小部件上(假设为(X',Y')),然后松开鼠标左键。
问题:如何保持(X,Y)和(X',Y')的值?
event->pos()
总是给出光标相对于小部件左上角的位置(文档:返回鼠标光标相对于接收事件的小部件的位置
)。多年的使用经验,包括与QGLWidget
的广泛使用,我从未见过这种情况失败。如果您知道反例,我很感兴趣。 - Boris Dalstein