Advertisement

Qt实现图片随鼠标方向旋转

阅读量:

在日常开发中常遇到类似于QQ宠物眼效果的场景,在这些项目中需要实现鼠标跟随功能。经过短暂的思考与查阅相关资料后,决定采用定时器配合QCursor::pos()方法获取鼠标的全局坐标位置,并结合paintEvent函数绘制出动态旋转效果。

获取坐标

通过调用QCursor::pos()函数可以获取鼠标在屏幕上的绝对坐标位置。其中WindowsPt_X和WindowsPt_Y分别表示相对检测点的X轴和Y轴坐标值。借助于atan2()函数可以计算出对应的角度值。在C++编程中需包含相应的标准库头文件以引用这些功能。将给定的角度值转换为介于1至180度之间的单位,在计算式中的tmp乘以180再除以π所得的结果具有一定的精度限制。

复制代码
    MousePt = QCursor::pos();//获取鼠标的绝对位置
    WindowsPt_X = WindowsPt_X+60;
    WindowsPt_Y = WindowsPt_Y+70;
    double tmp = std::atan2((this->MousePt.y()-WindowsPt_Y),(this->MousePt.x()-WindowsPt_X));
    Angle= tmp*180/3.14;

paintEvent()显示图片

在获得角度之后,能够调用rotate()

全部评论 (0)

还没有任何评论哟~