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

传统网站建设架构zen cart 创建的网站

传统网站建设架构,zen cart 创建的网站,网站开发哪家公司口碑好,wordpress速度优化版QT实现鼠标左右滑动切换图片实现思路:示例代码:功能说明:使用说明:实现思路: 1、在资源文件(qrc)中添加6张800x480像素的图片 2、使用QStackedWidget管理多个图片页面 3、重写鼠标事件处理函数实现滑动检测&#xf…

QT实现鼠标左右滑动切换图片

    • 实现思路:
    • 示例代码:
    • 功能说明:
    • 使用说明:

实现思路:

1、在资源文件(qrc)中添加6张800x480像素的图片

2、使用QStackedWidget管理多个图片页面

3、重写鼠标事件处理函数实现滑动检测:

  • mousePressEvent:记录起始位置
  • mouseMoveEvent:计算滑动距离
  • mouseReleaseEvent:根据滑动距离切换图片

4、添加滑动动画效果增强用户体验

示例代码:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QStackedWidget>
#include <QLabel>
#include <QPropertyAnimation>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();protected:void mousePressEvent(QMouseEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;private:Ui::Widget *ui;QStackedWidget *stackedWidget;QPoint startPos;  // 鼠标起始位置int currentIndex = 0;  // 当前图片索引int imageCount = 6;  // 图片总数QPropertyAnimation *animation;  // 切换动画void loadImages();  // 加载图片void switchImage(int direction);  // 切换图片方向: -1左滑, 1右滑
};#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QMouseEvent>
#include <QPixmap>
#include <QEasingCurve>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置窗口固定大小setFixedSize(800, 480);// 创建堆叠窗口stackedWidget = new QStackedWidget(this);stackedWidget->setGeometry(0, 0, 800, 480);// 初始化动画animation = new QPropertyAnimation(stackedWidget, "geometry");animation->setDuration(300);  // 动画时长300msanimation->setEasingCurve(QEasingCurve::OutCubic);  // 平滑动画曲线// 加载图片loadImages();
}Widget::~Widget()
{delete ui;delete animation;
}void Widget::loadImages()
{for (int i = 0; i < imageCount; ++i) {QLabel *imageLabel = new QLabel(stackedWidget);QPixmap pixmap(QString(":/res/image%1.png").arg(i+1));// 缩放图片填充整个标签pixmap = pixmap.scaled(800, 480, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);imageLabel->setPixmap(pixmap);imageLabel->setAlignment(Qt::AlignCenter);stackedWidget->addWidget(imageLabel);}stackedWidget->setCurrentIndex(currentIndex);
}void Widget::mousePressEvent(QMouseEvent *event)
{if (event->button() == Qt::LeftButton) {startPos = event->pos();  // 记录起始位置}
}void Widget::mouseMoveEvent(QMouseEvent *event)
{if (event->buttons() & Qt::LeftButton) {QPoint delta = event->pos() - startPos;// 水平移动堆叠窗口产生滑动效果stackedWidget->move(delta.x(), 0);}
}void Widget::mouseReleaseEvent(QMouseEvent *event)
{QPoint endPos = event->pos();int deltaX = endPos.x() - startPos.x();// 水平滑动距离超过100像素才切换if (abs(deltaX) > 100) {int direction = (deltaX > 0) ? -1 : 1;  // 右滑上一张,左滑下一张switchImage(direction);} else {// 未达到切换阈值,恢复原位animation->setStartValue(stackedWidget->geometry());animation->setEndValue(QRect(0, 0, 800, 480));animation->start();}
}void Widget::switchImage(int direction)
{// 计算新索引int newIndex = (currentIndex + direction + imageCount) % imageCount;// 设置动画起始位置animation->setStartValue(stackedWidget->geometry());// 根据方向设置动画结束位置if (direction < 0) {  // 向右滑动animation->setEndValue(QRect(800, 0, 800, 480));} else {  // 向左滑动animation->setEndValue(QRect(-800, 0, 800, 480));}// 连接动画完成信号connect(animation, &QPropertyAnimation::finished, [=]() {// 更新当前索引currentIndex = newIndex;stackedWidget->setCurrentIndex(currentIndex);// 重置位置并显示新图片stackedWidget->setGeometry(0, 0, 800, 480);// 断开连接避免重复disconnect(animation, &QPropertyAnimation::finished, nullptr, nullptr);});animation->start();
}

目录结构如下:
在这里插入图片描述
演示:
请添加图片描述

功能说明:

1、图片显示:6张图片通过QStackedWidget管理,每张填充整个窗口

2、滑动切换:

  • 向右滑动(鼠标从左向右拖拽)→ 上一张
  • 向左滑动(鼠标从右向左拖拽)→ 下一张

3、动画效果:平滑的滑动动画,提升用户体验

4、循环切换:最后一张向右滑动回到第一张,第一张向左滑动到最后一张

使用说明:

1、在窗口任意位置按住鼠标左键

2、水平拖动鼠标超过100像素距离

3、释放鼠标完成图片切换

http://www.dtcms.com/a/514948.html

相关文章:

  • 网站建设自主开发的三种方式wordpress 未找到
  • 手机网站 排版光谷做网站推广费用
  • 空调维修技术支持深圳网站建设军博网站建设
  • 建设淘宝网站的目的怎么制作网站教程
  • 濮阳网站建设优化网站建设管理员
  • 租号网站开发成本如何建立公司网站是什么
  • 国外好的做电视包装的网站温州文成网站建设
  • 青岛网站建设系统静态网站论文目录
  • 网站需要写哪些内容吗制作网页导航栏的步骤
  • 江门自助建站模板wordpress 自动发布
  • 北京建设安全协会网站网页被禁止浏览怎么解决
  • 网站维护 英语展厅设计参考图
  • 网站建设功能说明书搜索引擎的三个技巧
  • phpcms 手机网站后台商城网站项目策划书
  • 做响应式网站有什么插件wordpress 图片插件
  • 免费网站建设代理公司网络维护员是干什么的
  • 网站开发顶岗报告dw做的网站有什么缺陷
  • 北海网站设计网络服务提供者知道或者应当知道
  • 河北建设厅查询网站首页杭州百度快照优化排名
  • 哪些网站需要做分享按钮腾讯云wordpress密码
  • 福州有网站建设的公司排名西安专业的网站开发公司
  • 定制型网站建设合同范本足球比赛直播现场在线观看
  • 用asp.net做网站计数器什么是软件的开发平台
  • 网站开发都有哪些语言电商设计网站
  • 如何优化网站内容网页设计的目的是指设计者
  • 电商网站seo优化目标分解葫芦岛高端网站制作
  • 附近网站电脑培训班网站团购功能怎么做
  • 运城手机网站建设百度云超级会员试用1天
  • 网站后台页面企石镇网站建设
  • 做资源网站赚钱吗wordpress十大主题