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

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

相关文章:

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

目录 1.主场景搭建 1.1重载绘制事件&#xff0c;绘制背景图和标题图片 1.2设置窗口标题&#xff0c;大小&#xff0c;图片 1.3退出按钮对应关闭窗口&#xff0c;连接信号 2.开始按钮创建 2.1封装MyPushButton类 2.2加载按钮上的图片 3.开始按钮跳跃效果 3.1按钮向上跳…...

vue跳转以及传参

1.跳转页面的三种方法 <template><button click"twopage">跳转</button> </template><script setup> import { useRouter } from "vue-router"; const router useRouter(); // 获取 router 实例const twopage () > {r…...

Meta Reality Labs的VR/AR投资战略转向:内部视角与市场影响

最近,关于Meta(原Facebook)计划减少其在消费者虚拟现实(VR)领域的投资而增加对增强现实(AR)眼镜的投资的消息引起了广泛讨论。这一战略调整不仅反映了Meta对未来技术趋势的看法,也揭示了公司在面对激烈的市场竞争时所采取的新方向。本文将从不同角度探讨此次战略转向的…...

animate.css和wow.js结合使用实现动画效果

前景 手机站网页实现动画效果&#xff0c;animate.css是一个轻量级的css动画库&#xff0c;提供预定义的动画效果&#xff0c;使用方法参考 Animate.css | A cross-browser library of CSS animations. 问题&#xff1a; 添加好动画后&#xff0c;发现动画会在页面加载后一…...

【大模型】ChatGPT 提示词优化进阶操作实战详解

目录 一、前言 二、ChatGPT 提示词几个基本的优化原则 2.1 明确的提示词 2.1.1 提示词具体而清晰 2.1.1.1操作案例演示 2.2 确定焦点 2.2.1 操作案例演示 2.3 保持提示词的相关性 2.3.1 什么是相关性 2.3.2 提示词相关性操作案例一 2.3.2 提示词相关性操作案例二 三…...

网络安全:攻击和防御练习(全战课), DDos压力测试

XSS 跨站脚本攻击&#xff1a; Cross-site scripting&#xff08;简称xss&#xff09;跨站脚本。 一种网站的安全漏洞的攻击&#xff0c;代码注入攻击的一种。XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使…...

【落羽的落羽 C语言篇】指针·之其五

文章目录 一、冒泡排序二、qsort排序1. qsort使用指南2.回调函数3. qsort函数的模拟实现 一、冒泡排序 冒泡排序的核心思想就是&#xff1a;两两相邻的元素进行比较和交换。 现在&#xff0c;我们想编写一个函数&#xff0c;使它能够运用冒泡排序的原理&#xff0c;由小到大排…...

go的web框架介绍

Go 语言有许多优秀的 Web 框架&#xff0c;适用于不同类型的 Web 应用开发&#xff0c;涵盖从简单的 API 开发到复杂的微服务架构。以下是一些常见的 Go Web 框架&#xff1a; 1. Gin 简介&#xff1a;Gin 是一个高性能的 Go Web 框架&#xff0c;设计目标是让开发者能够以极…...

基于群晖搭建个人图书架-TaleBook based on Docker

前言 在群晖Container Manager中部署失败&#xff0c;转通过ssh部署。 一、准备工作 名称备注群晖SSH“终端机和SNMP”中启用SSH软件secureCRT等docker-compose.ymlGithub下载并修改 二、过程 2.1 创建本地文件夹 本地路径为&#xff1a; /docker/Calibre/data 2.2 下载d…...

redis哨兵安装部署

1、下载redis安装包&#xff0c;上传到3台服务器上 redis.tar.gz 解压处理 2、分别编译安装 cd redis/src make make install 3、配置哨兵模式 修改redis.conf文件内容 主节点 和 从节点都需要修改 bind 0.0.0.0 -::1 或者真实的ip地址 protected-mode no port 637…...

JVS低代码里表单与表格不同数据关联场景的实现方法

在业务处理与数据管理中&#xff0c;表单与表格模型的数据关联及同步保存是一个常见的需求。特别是在涉及多个数据模型且字段存在关联或差异时&#xff0c;合理设计表单与表格之间的数据交互逻辑特别重要。接下来小编以JVS低代码系统为例&#xff0c;详细介绍两种不同场景下&am…...

NaviveUI框架的使用 ——安装与引入(图标安装与引入)

文章目录 概述安装直接引入引入图标样式库 概述 &#x1f349;Naive UI 是一个轻量、现代化且易于使用的 Vue 3 UI 组件库&#xff0c;它提供了一组简洁、易用且功能强大的组件&#xff0c;旨在为开发者提供更高效的开发体验&#xff0c;特别是对于构建现代化的 web 应用程序。…...

Cannot resolve symbol ‘ActivityThread‘ | Android 语法

背景 ActivityThread 是 Android 系统内部使用的一个类,它位于 android.app 包中,但在 Android SDK 的公共 API 中并没有公开。 由于 ActivityThread 是隐藏的内部类,因此在编写单元测试或功能开发时,无法直接引用它。可以使用反射来访问内部 API,或者使用依赖注入的方式…...

OpenSSH-9.9p1 OpenSSL-3.4.0 升级步骤详细

前言 收到漏洞扫描通知 OpenSSH 安全漏洞(CVE-2023-38408) OpenSSH 安全漏洞(CVE-2023-51385) OpenSSH 安全漏洞(CVE-2023-51384) OpenSSH 安全漏洞(CVE-2023-51767) OpenSSH 安全漏洞(CVE-2023-48795) OpenSSH&#xff08;OpenBSD SecureShell&#xff09;是加拿大OpenBSD计划…...

python 练习题

目录 1&#xff0c;输入三个整数&#xff0c;按升序输出 2&#xff0c;输入年份及1-12月份&#xff0c;判断月份属于大月&#xff0c;小月&#xff0c;闰月&#xff0c;平月&#xff0c;并输出本月天数 3&#xff0c;输入一个整数&#xff0c;显示其所有是素数因子 4&#…...

数学建模——Topsis法

数模评价类&#xff08;2&#xff09;——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法&#xff0c;该方法的基本思想是&#xff0c;通过计算每个备选方案与理想解和负理想解之间的距离&#xff0c;从而评估每个…...

Electron-vue 框架升级 Babel7 并支持electron-preload webapck 4 打包过程记录

前言 我这边一直用的electron-vue框架是基于electron 21版本的&#xff0c;electron 29版本追加了很多新功能&#xff0c;但是这些新功能对开发者不友好&#xff0c;对electron构建出来的软件&#xff0c;使用者更安全&#xff0c;所以&#xff0c;我暂时不想研究electron 29版…...

github仓库自动同步到gitee

Github Actions是Github推出的自动化CI/CD的功能&#xff0c;我们将使用Github Actions让Github仓库同步到Gitee 同步的原理是利用 SSH 公私钥配对的方式拉取 Github 仓库的代码并推送到 Gitee 仓库中&#xff0c;所以我们需要以下几个步骤 生成 SSH 公私钥添加公钥添加私钥配…...

汽车仪表板可识别安全气囊,安全带,ABS,邮箱,灯等多种告警参数,YOLO,VOC,COCO三种方式标记的数据集整理

关于数据集介绍&#xff1a; 汽车仪表板可识别安全气囊&#xff0c;安全带&#xff0c;ABS&#xff0c;邮箱&#xff0c;灯等多种告警参数&#xff0c;YOLO&#xff0c;VOC&#xff0c;COCO三种方式标记的数据集。 可识别常见的&#xff1a; 安全气囊和安全带系统 &#xff0c;…...

springboot370高校宣讲会管理系统(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 高校宣讲会管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...