想让一个白色的圆圈ring.png图片在背景图片上旋转,有什么方法?

蜗牛哦 2016-02-18 03:28:20

如果通过定时器,定时刷新比如500ms再绘制的话很占用cpu资源,有什么好的方法占用少的cpu资源
void BackWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load("img/firstring.png");
painter.translate(SCREEN_W/2,SCREEN_H/2); //让图片的中心作为旋转的中心
painter.rotate(-angle); //顺时针旋转90度
painter.translate(-pix.width()/2,-pix.height()/2); //使原点复原
painter.drawPixmap(0,0,pix.width(),pix.height(),pix);
}

通过QPropertyAnimation *animation = new QPropertyAnimation(qwidget, "rotation");的方法,但是qwidget没有rotation属性,所以不知道如何把图中的白色圆圈添加rotation属性,改怎么去实现rotation属性,谢谢!

...全文
356 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
向天承影 2016-03-14
  • 打赏
  • 举报
回复
进来学习哈
蜗牛哦 2016-02-20
  • 打赏
  • 举报
回复
已经解决,
void BackWidget::paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     QPixmap pix;
     pix.load("img/firstring.png");
     painter.translate(SCREEN_W/2,SCREEN_H/2); //让图片的中心作为旋转的中心
    painter.rotate(-angle); //顺时针旋转90度
    painter.translate(-pix.width()/2,-pix.height()/2); //使原点复原
    painter.drawPixmap(0,0,pix.width(),pix.height(),pix);
 }
每次绘制的时候都要从磁盘中载入到内存,所以感觉很慢,可以先运行的时候载入到内存,通过在绘制函数中通过指针来访问速度就快了很多
蜗牛哦 2016-02-18
  • 打赏
  • 举报
回复
自己先顶下,这个问题困扰我好几天了

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧