浅窥Widget::move()函数

最近在重温QT,搞到窗口移动的时候需要计算,大概是这么个流程。

et->globalPos()
//获取鼠标在屏幕上的全局坐标
et->Pos()
//获取鼠标在窗口中的绝对坐标

首先是Press事件,获取鼠标按下时,全局坐标-窗口中的绝对坐标,那么就是这个窗口左上角的全局坐标。 et->globalPos() - et->Pos,获得窗口左上角坐标。
然后Move事件,也就是鼠标在窗口中移动的时候会触发的。et->globalPos()也是返回屏幕上的全局坐标。拿他去减去上面获得的数据。就获得了要move去的地方。
这里要注意,这里的move是绝对移动,也就是说要传入的参数是你希望窗口左上角所在的位置,而不是相对移动多少距离。搞这个函数的时候没看库被误导了。
这里附上简图一份。

本页的评论功能已关闭