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

php做的商城网站设计论文体验式营销案例

php做的商城网站设计论文,体验式营销案例,wordpress 火车头接口,网页设计的过程加载等待动画实现——转圈圈 效果图:(看封面最好) 关键要点 流畅的动画: 使用 QTimer 每 50 毫秒更新一次动画,确保动画流畅。 视觉效果: 使用 QPainter 的平滑像素转换和抗锯齿选项,提高动画…

加载等待动画实现——转圈圈

效果图:(看封面最好)

在这里插入图片描述

关键要点

  1. 流畅的动画
    • 使用 QTimer 每 50 毫秒更新一次动画,确保动画流畅。
  2. 视觉效果
    • 使用 QPainter 的平滑像素转换和抗锯齿选项,提高动画的视觉质量。
    • 设置窗口属性为透明背景,使动画可以覆盖在其他内容上。
  3. 性能优化
    • 只在需要时更新动画,避免不必要的重绘。

关键要点

  1. 流畅的动画
    • 使用 QTimer 每 50 毫秒更新一次动画,确保动画流畅。
  2. 视觉效果
    • 使用 QPainter 的平滑像素转换和抗锯齿选项,提高动画的视觉质量。
    • 设置窗口属性为透明背景,使动画可以覆盖在其他内容上。
  3. 性能优化
    • 只在需要时更新动画,避免不必要的重绘。

实现代码:

//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));
}

使用方法

  1. 创建等待动画对象

    WaitWidge* waitWidget = new WaitWidge(this);
    
  2. 显示等待动画

    waitWidget->show();
    
  3. 隐藏等待动画

    waitWidget->hide();
    

调用实例代码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include "WaitWidge.h"class 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 <QShowEvent>MainWindow::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.hkea.cn/news/912652/

相关文章:

  • iis 新建网站 要登录温州seo推广外包
  • 个人想做企业网站备案惠州seo代理商
  • 做公务员题的网站口红的推广软文
  • 福州网站建设 联系yanktcn 04上海百网优seo优化公司
  • 网站备案号如何获得网站建设营销推广
  • 物流网站开发公司西安 做网站
  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元
  • 做景观设施的网站网络营销推广要求
  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广