当前位置: 首页 > news >正文

网站建设与管理代码合肥软件外包公司

网站建设与管理代码,合肥软件外包公司,做网站用什么做,游戏软件开发需要多少钱加载等待动画实现——转圈圈 效果图#xff1a;#xff08;看封面最好#xff09; 关键要点 流畅的动画#xff1a; 使用 QTimer 每 50 毫秒更新一次动画#xff0c;确保动画流畅。 视觉效果#xff1a; 使用 QPainter 的平滑像素转换和抗锯齿选项#xff0c;提高动画…加载等待动画实现——转圈圈 效果图看封面最好 关键要点 流畅的动画 使用 QTimer 每 50 毫秒更新一次动画确保动画流畅。 视觉效果 使用 QPainter 的平滑像素转换和抗锯齿选项提高动画的视觉质量。设置窗口属性为透明背景使动画可以覆盖在其他内容上。 性能优化 只在需要时更新动画避免不必要的重绘。 关键要点 流畅的动画 使用 QTimer 每 50 毫秒更新一次动画确保动画流畅。 视觉效果 使用 QPainter 的平滑像素转换和抗锯齿选项提高动画的视觉质量。设置窗口属性为透明背景使动画可以覆盖在其他内容上。 性能优化 只在需要时更新动画避免不必要的重绘。 实现代码 //WaitWidge.h// #ifndef WAITWIDGE_H #define WAITWIDGE_H#include QWidget #include QPaintEvent// WaitWidge 类继承自 QWidget用于显示等待动画 class WaitWidge : public QWidget {Q_OBJECTpublic:WaitWidge(QWidget *parent nullptr);~WaitWidge();protected:// 重载 paintEvent 方法用于自定义绘制void paintEvent(QPaintEvent *) override;private:QPixmap* m_pPixmap; // 用于储存等待动画图片QTimer* m_pTimer; // 用于更新动画 };//WaitWidge.cpp// #endif // WAITWIDGE_H #include WaitWidge.h #include QPainter #include QTimer// 静态变量用于记录旋转次数 static int count 0;WaitWidge::WaitWidge(QWidget *parent): QWidget(parent) {// 设置窗口标志为无边框和工具窗口setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);// 设置窗口属性为透明背景setAttribute(Qt::WA_TranslucentBackground, true);// 加载等待动画图片m_pPixmap new QPixmap(://wait.png);// 创建定时器用于定时更新动画m_pTimer new QTimer(this);// 连接定时器的 timeout 信号到更新槽函数connect(m_pTimer, QTimer::timeout, []{update(); // 更新窗口触发 paintEvent});// 启动定时器每 50 毫秒触发一次m_pTimer-start(50); }WaitWidge::~WaitWidge() {}// 重载 paintEvent 方法 void WaitWidge::paintEvent(QPaintEvent *) {// 创建 QPainter 对象用于绘制QPainter painter(this);// 设置绘制选项painter.setRenderHints(QPainter::SmoothPixmapTransform | QPainter::Antialiasing);painter.setPen(Qt::NoPen);painter.setBrush(Qt::NoBrush);// 计算绘制区域使图片居中QRect trect((rect().width() - 128)/2, (rect().height() - 128)/2, 128, 128);// 创建 QMatrix 对象用于旋转图片QMatrix matrix;// 旋转图片每次旋转 10 度matrix.rotate((10 * (count)) % 360);// 绘制旋转后的图片painter.drawPixmap(trect, m_pPixmap-transformed(matrix, Qt::SmoothTransformation)); }使用方法 创建等待动画对象 WaitWidge* waitWidget new WaitWidge(this);显示等待动画 waitWidget-show();隐藏等待动画 waitWidget-hide();调用实例代码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include WaitWidge.hclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow() default;protected:void resizeEvent(QResizeEvent* event) override;void showEvent(QShowEvent* event) override;private:void centerWaitWidget();private:WaitWidge* waitWidget; };#endif // MAINWINDOW_H #include MainWindow.h #include QPushButton #include QVBoxLayout #include QResizeEvent #include QShowEventMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), waitWidget(new WaitWidge(this)) {// 设置主窗口的大小setFixedSize(400, 300);// 创建一个按钮用于显示和隐藏等待动画QPushButton* button new QPushButton(Toggle Wait Widget, this);connect(button, QPushButton::clicked, [this]{if (waitWidget-isVisible()){waitWidget-hide();}else {waitWidget-show();centerWaitWidget(); // 显示时重新计算位置}});// 创建一个布局将按钮添加到布局中QVBoxLayout* layout new QVBoxLayout;layout-addWidget(button);// 创建一个中心部件并将布局设置为中心部件的布局QWidget* centralWidget new QWidget(this);centralWidget-setLayout(layout);setCentralWidget(centralWidget);// 设置等待动画组件的初始大小waitWidget-setFixedSize(128, 128);waitWidget-hide(); // 初始时隐藏等待动画 }void MainWindow::resizeEvent(QResizeEvent* event) {QMainWindow::resizeEvent(event);centerWaitWidget(); // 窗口大小改变时重新计算位置 }void MainWindow::showEvent(QShowEvent* event) {QMainWindow::showEvent(event);centerWaitWidget(); // 窗口显示时计算位置 }void MainWindow::centerWaitWidget() {// 获取主窗口的全局坐标QPoint globalPos mapToGlobal(rect().topLeft());int x globalPos.x() (width() - waitWidget-width()) / 2;int y globalPos.y() (height() - waitWidget-height()) / 2;waitWidget-move(x, y); }mapToGlobal(rect().topLeft()); int x globalPos.x() (width() - waitWidget-width()) / 2; int y globalPos.y() (height() - waitWidget-height()) / 2; waitWidget-move(x, y); }
http://www.dnsts.com.cn/news/255317.html

相关文章:

  • 手机wap网站开发导视设计原则
  • php 网站开发模式织梦网站建设案例
  • 大学生网站建设广告公司推广平台
  • 网站建设计入什么会计科目深圳市地图
  • 农业信息中心网站建设网站建设公司合伙人
  • aspnet网站开发实例项目旅游企业seo官网分析报告
  • 网站软件设计织梦换wordpress
  • 厦门市住房与城乡建设局网站网站页面设计版权
  • 郑州公司网站设计刚出来的前端工资多少
  • 小学生的做试卷儿的网站 你这台州专业网站建设
  • 怎么建网站不用买空间一个网站开发的权限
  • 新泰网站制作关于加强网站建设的情况说明
  • 河南品牌网站建设买了个服务器 怎么做网站
  • 网站界面排版自建网站做外贸的流程
  • 网站备案黑名单杭州app定制
  • 中国住房和建设部网站搜索引擎关键词优化有哪些技巧
  • 个人手机网站大全温岭手机网站建设
  • 有哪些做共享充电宝的网站php做网站导购模板
  • 南宁做网站 的wordpress换不了密码
  • 新手学做网站 iso ed2kwordpress 树形插件
  • 广州安全教育平台登录账号登录入口郑州seo顾问外包公司
  • 怎样用网站做淘宝推广专门制作网站
  • 网站与网页的关系黄埔网站建设设计
  • 东莞网站快速排名招聘网站推广怎么做
  • 外贸网站制作怎么选网站二次开发模板
  • 网络移动公司的网站建设网站300m空间
  • 传媒免费网站建设网站优化排名软件网站
  • 简单网站建设官网网站被黑是怎么回事
  • 东莞网页网站制作长沙招聘网站有哪些
  • 二手网站设计与建设展示网站开发 大概多少钱