桌面会飞的鸟Qt C++小项目

这篇具有很好参考价值的文章主要介绍了桌面会飞的鸟Qt C++小项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

桌面会飞的鸟Qt C++小项目

整体流程

桌面会飞的鸟Qt C++小项目

具体代码展开

1.鸟图片的帧动画切换

  1. 先加载图片资源
  2. 通过for循环 预先加载图片资源
  3. 创建定时器,当定时器在发送流逝的信号的时候,将图片资源进行切换(实现效果上的飞的功能),如果min下标大于max则需要重置min为1。此时只是在鸟类中进行了图片的切换。
  4. 但是我们最终需要在主界面上进行展示,因此需要鸟类进行信号发出,表示鸟类已经完成图片切,主界面可以进行图片的加载了,该信号定义为changePix信号,当主界面接收到changePix信号的时候,进行图片的更新操作(主界面绘制鸟类图片是通过重写paintEvent方法进行的,在接收到changePix的时候可以通过调用update进行重新绘制,因为此时鸟类中的m_Bird_Pix属性已经改变)。

桌面会飞的鸟Qt C++小项目
桌面会飞的鸟Qt C++小项目
桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目
桌面会飞的鸟Qt C++小项目

重点理解: 图片的切换操作

  1. 鸟类种的定时器 每发出timeout信号,就会按序列切换图片 并发送changePix信号(目的是为了让主界面知道鸟类图片已经切换,从而在主界面进行重新绘制鸟类的图片)

2.鸟实现自动水平飞的功能

  1. 在主界面上定义一个m_Auto_Position记录位置
  2. 定义一个QTimer类型的timer定时器,当定时器流逝的时候就会使得m_Auto_Position自增5,最后将m_Auto_Position赋值给move操作即可实现移动的效果
  3. 移动的小细节处理 1.如果m_Auto_Position大于了桌面的宽度应该让鸟返回到屏幕的最左侧;2.如果鼠标按在了小鸟上,小鸟不应该移动(这里需要在小鸟中定义一个变量mouseDown记录鼠标是否被点击,如果没有被点击就m_Auto_Position自增) ,mouseDown在重写鼠标点击 释放等函数中进行维护

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

3 鼠标拖着鸟的操作

  1. 鼠标按下的时候记录分量的值(m_pos)
  2. 鼠标移动的时候反向求出位置,并发送信号出去,方便主窗口进行接受处理鸟类的移动位置多少
  3. 鼠标释放的时候记录鼠标状态mouseDown为false
    桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

4.实现右键点击鸟类出现菜单栏

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

5.使界面透明化和无标题模式

//去掉标题栏
 this->setWindowFlags(Qt::FramelessWindowHint);
 //设置透明窗口 120号属性
 this->setAttribute(Qt::WA_TranslucentBackground);
 //设置窗口顶层
 this->setWindowFlags(this->windowFlags() |Qt::Tool);

桌面会飞的鸟Qt C++小项目

项目打包

  1. 找到项目的realse版本的文件夹,并进入realse版本,将exe文件放置在新的文件下下面
  2. 找到Qt 命令面板(需要对应相同的编译器我用的32位的),并输入具体代码:1.切换盘符;2.切换到exe文件目录下面;3.输入 windeploy.exe exe名称.exe

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

桌面会飞的鸟Qt C++小项目

打包给用户阶段,参考

QT项目打包全套—保姆级教程

总结

本博客可能对于新手来说解释的有些不够到位,但总体的思路大致即分为以下几点:

  1. 实现鸟图片的加载,以实现帧动画
  2. 实现鸟类的自动移动(QTimer时间控制)
  3. 鼠标实现鸟类的位置拖动
  4. 实现右键鼠标弹出菜单
  5. 实现窗体的透明化和无标题栏

仔细分析其实并不难,如果非要说难得话可能是对于鼠标事件重写中向量那一块有些难(可以百度一下,这里我不多说)。读者可以去我博客去下载相应得代码更具我上面叙述得进行代码得运行和代码得自行解读,如有如何不理解得地方欢迎评论区留言。(代码中存在得bug为点击了小鸟之后会出现小鸟不能自动移动得问题,如果遇到这个问题需读者自行思考如何修改,项目仓促笔者未进行修改排查)

自取代码链接

如积分不够可以私聊我发你

代码资源文章来源地址https://www.toymoban.com/news/detail-410130.html

到了这里,关于桌面会飞的鸟Qt C++小项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++ QT项目2】——高仿安信可串口调试助手

      串口调试助手是一种串口通讯测试工具,它可以用于打开、关闭、配置串口,读写串口数据等常见的串口通信操作。 在嵌入式系统调试、模块测试、通讯协议分析等领域都具有广泛的应用。   串口助手通常提供GUI界面,让用户可以更加方便、直观地进行串口通讯测试

    2024年02月19日
    浏览(50)
  • 项目整体管理——实践感悟

    关于项目整体管理 实际项目中虽然做了几年项目经理,带了几年项目,但项目章程我确信我从来没有见到过,这个可能在实际中只是个概念,项目经理的职责和职权也没有很明确的规定,大多都是口头约定一下,项目目标也可能就只是简单的满足项目毛利需求,再加个培养人

    2024年02月01日
    浏览(31)
  • 【软考】系统集成项目管理工程师(六)项目整体管理

    项目整体管理(也称整合管理)是项目管理十大知识领域中最为重要的。项目管理十大知识领域后续章节依次讲解,无论是备考还是工作,都 必须掌握 。 1. 什么是整体管理 项目整体管理也称整合管理,知识领域包括识别、确定、结合、统一与协调各 项目管理过程组 内的不同

    2024年02月01日
    浏览(66)
  • 【QtQuick3D学习】使用Qt Design Studio设计UI并导入Qt Creator项目中使用——基于C++和Cmake

    新版本中项目文件全部放在了一起,见 【QtQuick3D学习】使用Qt Creator创建Qt Design Studio项目测试运行——基于C++和Cmake 【QtQuick3D学习】使用Qt Design Studio创建项目并使用Qt Creator打开测试运行——基于C++和Cmake 这里测试前后端分离,即使用Qt Design Studio设计前端和交互逻辑,C++写后

    2024年02月01日
    浏览(36)
  • 【项目日记(三)】内存池的整体框架设计

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你做项目   🔝🔝 开发环境: Visual Studio 2022 由于本项目是模拟学习tcmalloc 的优秀的思想以及巧妙的结构,所 以本项目只会把源项目的精华部分 拿出来

    2024年01月22日
    浏览(35)
  • QT桌面挂件动画

    图片资源 桌面挂件动画置顶 切换挂件动画 图片选择更换桌面壁纸 显示时改变桌面壁纸,隐藏/退出时还原桌面壁纸 系统托盘菜单,可选择开/关悬浮挂件功能按键 悬浮挂件功能按键随鼠标区域显示/隐藏 链接 user32 Advapi32 库 系统托盘应用 当应用程序接收到 quitAction 的触发信

    2024年02月12日
    浏览(26)
  • kafka发布订阅原理,Java项目开发如何设计整体架构

    源码阅读,最核心有三点:技术基础+强烈的求知欲+耐心。 1.1 设计模式(45设计模式:介绍+优缺点+应用实例+源代码+解决问题) 1.2 Spring复习大纲:依赖注入Ioc+Beans+注解+数据访问+AOP+MVC等 1.3 Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC 面试题(含解析)+学习书籍+学习

    2024年03月12日
    浏览(61)
  • 5.6和5.7、项目整体流程代码实现,解析http请求报文

    代码地址 逻辑单元内部的一种高效编程方法:有限状态机 (finite state machine) 。 有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑。如下是一种状态独立的有限状态机: 这是一个简单的有限状

    2023年04月25日
    浏览(49)
  • 鸿蒙应用项目分享:我的鸿蒙毕设:基于HarmonyOS的任务看板平台【一】:项目整体介绍

    HELLO,EVERYONE: 这里分享我自己的毕业设计,除软件内使用的个别图标以外,部分界面参考出处和图标出处会在文末标出,再次声明:本文全部内容仅为学习使用。 【本文先分享内容界面的样子,后续再考虑分享代码的形式,视频教程OR图文OR都要】 这是主要的哈,比如一些

    2023年04月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包