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.窗口透明化

相关推荐
结城明日奈是我老婆4 分钟前
stm32的TIM和PWM学习笔记
笔记·stm32·学习
AI_零食8 分钟前
HarmonyOS ArkTS 数据格式化技术深度解析
学习·华为·harmonyos·鸿蒙
暗夜猎手-大魔王12 分钟前
hermes源码学习7--会话存储
人工智能·学习
Dovis(誓平步青云)21 分钟前
《QT学习第五篇:QSS美化界面与API绘图》
开发语言·数据库·qt·学习·时序数据库·开源智能体
数智工坊32 分钟前
周志华《Machine Learning》学习笔记--第十六章--强化学习
笔记·学习·机器学习
知南x40 分钟前
【DPDK例程学习】(1) helloworld
学习·word
Sc Turing43 分钟前
【AI学习0611】
学习
GHL28427109043 分钟前
Trae学习
学习
一锅炖出任易仙44 分钟前
创梦汤锅学习日记day31
学习·ai
MartinYeung51 小时前
[论文学习]DP 微调 LLM 隐私防护实证研究:方法比较与洞见
网络·学习