本文介绍: 这个画的是一个东西围绕着中心的地球不停的旋转,可以放在界面的中部,增加美感。
这个画的是一个东西围绕着中心的地球不停的旋转,可以放在界面的中部,增加美感。
展示
界面展示
设计过程
标题在之前的博客有写过,这里不再重复
下面是关于地球旋转的相关
1.资源文件添加
先将相关的资源文件添加,三个图片
2.导入到pixmap
void CDynamicsEarth::resizeEvent(QResizeEvent *event)
{
/*
创建一个新的 QPixmap 对象,该对象从资源文件加载名为 "map.png" 的图像
使用 .scaledToWidth(244, Qt::SmoothTransformation) 方法将这个图像缩放到宽度为 244 像素,使用平滑变换算法。
最后,将缩放后的图像赋值给成员变量 m_pixBg。
*/
m_pixBg = QPixmap(":/image/res/map.png").scaledToWidth(244, Qt::SmoothTransformation);//地球的图片
m_pixMask1 = QPixmap(":/image/res/lbx.png").scaledToWidth(300, Qt::SmoothTransformation);//周围动的网状图
m_pixMask2 = QPixmap(":/image/res/jt.png").scaledToWidth(281, Qt::SmoothTransformation);//蓝狐
}
3.绘制静止图像,重写paintEvent函数
QPainter painter(this);
//设置渲染提示。这些提示会影响绘制的视觉效果。这里设置了三个提示:抗锯齿、平滑图像变换和文本抗锯齿。
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); // 抗锯齿和使用平滑转换算法
if (!m_pixBg.isNull())
{
//在画布的中心位置绘制m_pixBg图像。计算位置的方式确保图像居中,画地球
painter.drawPixmap((width() - m_pixBg.width()) >> 1, (height() - m_pixBg.height()) >> 1, m_pixBg);//>>1右移一位表示除以2
}
if (!m_pixMask2.isNull())
{
painter.save();//保存当前的绘图状态。这是为了后面能够恢复到这个状态。
painter.translate(rect().center());//将绘图的原点移动到当前部件的中心。
painter.setOpacity(0.3);//设置绘制的透明度为0.3,这意味着绘制的内容会有30%的不透明度。
painter.rotate(-angle);//根据变量angle的负值旋转绘制的图像。这可能是为了实现某种视觉效果,例如旋转遮罩 -号是顺时针
painter.drawPixmap(-m_pixMask2.width() >> 1, -m_pixMask2.height() >> 1, m_pixMask2);//画出旋转的网状,在地球的周围
painter.restore();//恢复之前保存的绘图状态
}
if (!m_pixMask1.isNull())
{
painter.save();
painter.translate(rect().center());
painter.rotate(angle);
painter.drawPixmap(-m_pixMask1.width() >> 1, -m_pixMask1.height() >> 1, m_pixMask1);
painter.restore();
}
4.启动定时器,设置刷新,角度不停的改变,重写timeEvent
void CDynamicsEarth::timerEvent(QTimerEvent *event)
{
angle = (++angle % 360);//旋转不同的角度
update();
}
原文地址:https://blog.csdn.net/qq_57049935/article/details/136005231
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_66897.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。