c++学习之QT综合项目一

1.项目简介及创建

复制代码
#include "bird.h"
复制代码
复制代码
Bird::Bird(QWidget *parent) : QWidget(parent)
复制代码
{
复制代码
    //加载所有图片
复制代码
    for(int i = 0 ; i < this->max;i++)
复制代码
    {
复制代码
        QString str = QString(":/Bird/bird%1.png").arg(i+1);
复制代码
        this->m_bird_Pix.load(str);
复制代码
    }
复制代码
    //设置鸟的大小
复制代码
    this->setFixedSize(this->m_bird_Pix.width(),this->m_bird_Pix.height());
复制代码
复制代码
    //创建定时器
复制代码
    this->timer = new QTimer(this);
复制代码
复制代码
    //监听定时器
复制代码
    connect(timer,&QTimer::timeout,[=](){
复制代码
        QString str = QString(":/Bird/bird%1.png").arg(this->min++);
复制代码
        this->m_bird_Pix.load(str);
复制代码
        if(this->min > this->max)
复制代码
        {
复制代码
            this->min = 1;
复制代码
        }
复制代码
        emit changePix(); //告诉窗口正在做切图
复制代码
    });
复制代码
复制代码
    //创建菜单
复制代码
    this->m_Menu = new QMenu();
复制代码
    //监听菜单下的退出菜单项
复制代码
    connect(this->m_Menu->addAction("退出"),&QAction::triggered,[=](){
复制代码
        exit(0);
复制代码
    });
复制代码
}
复制代码
复制代码
void Bird::running()
复制代码
{
复制代码
    this->timer->start(70);
复制代码
}
复制代码
复制代码
void Bird::mousePressEvent(QMouseEvent *event)
复制代码
{
复制代码
    this->m_Pos = event->globalPos() -   ((QWidget *) (this->parent()))->frameGeometry().topLeft();
复制代码
    this->mouseDown = true; //鼠标按下,将状态改为true
复制代码
复制代码
    //右键菜单弹出
复制代码
    if(event->button() == Qt::RightButton)
复制代码
    {
复制代码
        this->m_Menu->popup(QCursor::pos());
复制代码
    }
复制代码
复制代码
    //窗口消失后 重置鼠标按下状态
复制代码
    connect(this->m_Menu,&QMenu::aboutToHide,[=](){
复制代码
        this->mouseDown = false;
复制代码
    });
复制代码
}
复制代码
复制代码
void Bird::mouseMoveEvent(QMouseEvent *event)
复制代码
{
复制代码
    //发送自定义信号,告诉窗口移动的位置
复制代码
    emit this->moving( event->globalPos() - this->m_Pos );
复制代码
}
复制代码
复制代码
void Bird::mouseReleaseEvent(QMouseEvent *event)
复制代码
{
复制代码
    //鼠标释放 ,视为鼠标没有按下
复制代码
    this->mouseDown = false;
复制代码
}
复制代码

2.导入资源

3.鸟类创建

4.鸟动画实现

5.鼠标拖拽

6.自动移动

7.右键菜单

8.窗口透明化

相关推荐
创业之路&下一个五年5 分钟前
系统分析师,我又考后总结了。
学习·总结
ヾChen10 分钟前
MySQL——增删改查操作
数据库·sql·物联网·学习·mysql
小蜜蜂爱编程19 分钟前
逻辑回归学习笔记
笔记·学习·逻辑回归
YJlio39 分钟前
VMMap 学习笔记(8.3):VMMap 窗口全解析——内存类型、指标含义、颜色视图怎么读
笔记·学习·visual studio
春生野草1 小时前
(二)Docker实战--Docker镜像部署与启动
学习·docker·容器
屁股割了还要学1 小时前
【C++进阶】STL-string的简单实现
c语言·开发语言·数据结构·c++·学习·考研
Helibo442 小时前
C++pair学习笔记
c++·笔记·学习
CarmenHu3 小时前
大模型应用评估指标学习笔记
笔记·学习
十五学长3 小时前
计算机理论基础学习Day19
学习
snakecy4 小时前
系统时间更新
大数据·学习·docker·区块链