Qt桌面应用开发 第十天(综合项目二 翻金币)

目录

1.主场景搭建

1.1重载绘制事件,绘制背景图和标题图片

1.2设置窗口标题,大小,图片

1.3退出按钮对应关闭窗口,连接信号

2.开始按钮创建

2.1封装MyPushButton类

2.2加载按钮上的图片

3.开始按钮跳跃效果

3.1按钮向上跳动

3.2按钮向下跳动


1.主场景搭建

1.1重载绘制事件,绘制背景图和标题图片

void MainScene::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPixmap pix;//背景图pix.load(":/CoinRes/2.png");painter.drawPixmap(0,0,this->width(),this->height(),pix);//加载图片pix.load(":/CoinRes/2.png");//缩放图片pix=pix.scaled(pix.width()*0.5,pix.height()*0.5);painter.drawPixmap(10,30,pix.width(),pix.height(),pix);
}

1.2设置窗口标题,大小,图片

MainScene::MainScene(QWidget *parent): QMainWindow(parent), ui(new Ui::MainScene)
{ui->setupUi(this);//设置固定大小this->setFixedSize(320,580);//设置应用图片this->setWindowIcon(QPixmap(":/CoinRes/1.png"));//设置窗口标题this->setWindowTitle("翻金币游戏");
}

1.3退出按钮对应关闭窗口,连接信号

    //退出按钮,退出程序connect(ui->actionQuit,&QAction::triggered,[=]{this->close();});

2.开始按钮创建

需求如下:开始按钮,初始时为一个图片,按下显示为另一个图片

2.1封装MyPushButton类

class MyPushButton : public QPushButton
{Q_OBJECT
public:explicit MyPushButton(QWidget *parent = nullptr);MyPushButton(QString normalImg,QString pressImg="");//默认显示图片路径QString normalImgPath;//按下后显示的图片路径QString pressedImgPath;signals:};

2.2加载按钮上的图片

MyPushButton::MyPushButton(QString normalImg, QString pressImg)
{normalImgPath=normalImg;pressedImgPath=pressImg;QPixmap pix;bool ret=pix.load(":/CoinRes/1.png");if(false==ret){qDebug()<<normalImg<<"图片加载失败";}//设置图片的固定尺寸this->setFixedSize(pix.width(),pix.height());//设置不规则图片的样式表,将背景多余部分取消掉this->setStyleSheet("QPushButton{border:0px;}");//设置图标this->setIcon(pix);//设置图标大小this->setIconSize(QSize(pix.width(),pix.height()));
}

3.开始按钮跳跃效果

需求:按钮点击后,可以向上向下跳动

3.1按钮向上跳动

void MyPushButton::zoom1()
{//创建动画对象,在当前按钮用几何图形QPropertyAnimation* animation1=new QPropertyAnimation(this,"geometry");//设置动画的维持时间animation1->setDuration(200);//设置起始位置animation1->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));//设置结束位置animation1->setEndValue(QRect(this->x(),this->y()+10,this->width(),this->height()));//设置缓和曲线,设为弹跳效果animation1->setEasingCurve(QEasingCurve::OutBounce);//开始执行动画,设置属性,动画执行结束后销毁对象animation1->start(QAbstractAnimation::DeleteWhenStopped);
}

3.2按钮向下跳动

void MyPushButton::zoom2()
{//创建动画对象,在当前按钮用几何图形QPropertyAnimation* animation1=new QPropertyAnimation(this,"geometry");//设置动画的维持时间animation1->setDuration(200);//设置起始位置animation1->setStartValue(QRect(this->x(),this->y()+10,this->width(),this->height()));//设置结束位置animation1->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));//设置缓和曲线,设为弹跳效果animation1->setEasingCurve(QEasingCurve::OutBounce);//开始执行动画,设置属性,动画执行结束后销毁对象animation1->start(QAbstractAnimation::DeleteWhenStopped);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【maven-4】IDEA 配置本地 Maven 及如何使用 Maven 创建 Java 工程

IntelliJ IDEA&#xff08;以下简称 IDEA&#xff09;是一款功能强大的集成开发环境&#xff0c;广泛应用于 Java 开发。下面将详细介绍如何在 IDEA 中配置本地 Maven&#xff0c;并创建一个 Maven Java 工程&#xff0c;快速上手并高效使用 Maven 进行 Java 开发。 1. Maven …

详细了解索引规约

索引规约 在大厂中数据量非常庞大&#xff0c;也有很多高并发场景&#xff0c;因此在大厂中使用索引规约主要是为了规范索引的创建、使用及管理&#xff0c;确保数据库性能的高效与稳定&#xff0c;避免因随意或不合理创建索引带来诸如占用过多存储资源、影响数据更新效率等问…

利用Ubuntu批量下载modis图像(New)

由于最近modis原来批量下载的代码不再直接给出&#xff0c;因此&#xff0c;再次梳理如何利用Ubuntu下载modis数据。 之前的下载代码为十分长&#xff0c;现在只给出一部分&#xff0c;需要自己再补充另一部分。之前的为&#xff1a; 感谢郭师兄的指导&#xff08;https://blo…

vue3图片报错转换为空白不显示的方法

vue3图片报错转换为空白不显示的方法 直接上代码&#xff1a; <el-table-column label"领料人" align"center"><template #default"scope"><el-imagev-if"scope.row.receiver":src"scope.row.receiver"style…

在OpenHarmony系统下开发支持Android应用的双框架系统

在 OpenHarmony 系统下开发支持 Android 应用的双框架系统&#xff0c;主要的目标是实现 OpenHarmony 本身作为底层操作系统&#xff0c;并通过兼容层或者桥接技术&#xff0c;允许 Android 应用在其上运行。双框架系统的架构设计会涉及到 OpenHarmony 和 Android 的结合&#…

混沌工程/混沌测试/云原生测试/云平台测试

背景 私有云/公有云/混合云等具有复杂&#xff0c;分布式&#xff0c;环境多样性等特点&#xff0c;许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程&#xff0c;建立对系统抵御生产环境中失控条件的能力以及信心&#xff0c;提高系统面对未知风险得能力。 …

C++之 String 类的模拟实现

本文只简述string类模拟实现的重点&#xff0c;其余不再过多赘述 一、模拟实现string类的构造函数 本文主要实现下图两个构造函数&#xff0c;即string()和string(const string& str) 而关于string的底层&#xff0c;其实就是数组&#xff0c;在物理逻辑上是连续的空间&am…

数据结构基础之《(9)—归并排序》

一、什么是归并排序 1、整体是递归&#xff0c;左边排好序右边排好序merge让整体有序 2、让其整体有序的过程里用了排外序方法 3、利用master公式来求解时间复杂度 4、当然可以用非递归实现 二、归并排序说明 1、首先有一个f函数 void f(arr, L, R) 说明&#xff1a;在arr上…

Pytorch深度学习笔记

1、大于或等于三维的张量没有名称&#xff0c;统一叫张量。 点-----标量&#xff08;Scalar&#xff09;----0阶张量是标量----只有数值大小&#xff0c;没有方向&#xff0c;部分有正负之分 线-----向量&#xff08;Vector&#xff09;----1阶张量是向量----有大小和方向&…

UIE与ERNIE-Layout:智能视频问答任务初探

内容来自百度飞桨ai社区UIE与ERNIE-Layout&#xff1a;智能视频问答任务初探&#xff1a; 如有侵权&#xff0c;请联系删除 1 环境准备 In [2] # 安装依赖库 !pip install paddlenlp --upgrade !pip install paddleocr --upgrade !pip install paddlespeech --upgrade In …

[代码随想录06]哈希表的使用,有效字母异位词,两数组交集,快乐数,两数之和

前言 哈希表是什么&#xff1f;一句话带你理解&#xff0c;简单来说我们对于杂乱的数据&#xff0c;怎么快速找到数据&#xff0c;如何做呢&#xff1f;一般的做法就是遍历复杂度为o(N)去找寻一个数据&#xff0c;但是吧&#xff0c;我们这样思考的话&#xff0c;还是花了大量时…

三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序

三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序 文章目录 前言三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序基于黑翅鸢BKA优化算法的三维路径规划一、研究基本原理二、黑翅鸢BKA优化算法的基本步骤&#xff1a;三、详细流程四、总结 二、实验结果…

【问题】webdriver.Chrome()设置参数executable_path报不存在

场景1: 标红报错unresolved reference executable_path 场景2: 执行报错TypeError: __init__() got an unexpected keyword argument executable_path 原因&#xff1a; 上述两种场景是因为selenium4开始不再支持某些初始化参数。比如executable_path 解决&#xff1a; 方案…

Java - JSR223规范解读_在JVM上实现多语言支持

文章目录 1. 概述2. 核心目标3. 支持的脚本语言4. 主要接口5. 脚本引擎的使用执行JavaScript脚本执行groovy脚本1. Groovy简介2. Groovy脚本示例3. 如何在Java中集成 Groovy4. 集成注意事项 6. 与Java集成7. 常见应用场景8. 优缺点9. 总结 1. 概述 JSR223&#xff08;Java Spe…

SpringCloud之Config:从基础到高级应用

目录 一、SpringCloud Config 简介1、SpringCloud Config 概述&#xff08;1&#xff09;核心概念&#xff08;2&#xff09;SpringCloud Config 的特点&#xff08;3&#xff09;应用场景&#xff08;4&#xff09;工作原理&#xff08;5&#xff09;优势&#xff08;6&#x…

无序抓取系列(一)

文章目录 一 摘要 二 资源 三 内容 一 摘要 最近&#xff0c;已经提出了许多抓取检测方法&#xff0c;这些方法可用于直接从传感器数据中定位机器人抓取配置&#xff0c;而无需估计物体姿态。其基本思想是将抓握感知视作计算机视觉中的对象检测。这些方法将噪声和部分遮挡的…

论文阅读:Deep divergence-based approach to clustering

论文地址&#xff1a;main.pdf (sciencedirectassets.com) 摘要 深度学习研究中的一个有前景的方向是通过优化判别损失函数&#xff0c;学习表示并同时发现无标签数据中的聚类结构。与监督式深度学习不同&#xff0c;这一研究方向尚处于起步阶段&#xff0c;如何设计和优化合适…

docker build ubuntu ssh

dockerfile 构建镜像 为了使用Dockerfile构建Docker镜像&#xff0c;请遵循以下步骤&#xff1a; 创建一个名为Dockerfile的文件&#xff0c;并在其中定义镜像的构建指令。 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu:24.04# 安装openssh-server和pas…

2024.12.2工作复盘

1.今天学了什么&#xff1f; 简单的写了一篇博客&#xff0c;是关于参数校验的问题&#xff0c;参数校验&#xff0c;一个是前后端校验到底一不一致&#xff0c;一个是绕过前端校验&#xff0c;看后台的逻辑到底能不能校验住。 2.今天解决了什么问题&#xff1f; 3.今天完成…

关于单片机的原理与应用!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///目前正在学习C&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片…