c学习之QT综合项目一
目录
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.窗口透明化

