首页 > 分享 > 郭嘉轩/南开大学23C++桌面宠物坤坤

郭嘉轩/南开大学23C++桌面宠物坤坤

南开大学 工科试验班(信息科学与技术) 姓名:郭嘉轩 学号:2213632 班级:1013 2023年5月15日 报告

目录 一,题目 二,开发软件 三,课题要求 四,主要流程 五,单元测试 六,收获 南开大学23C++桌面宠物坤坤

一,作业题目 桌面宠物坤坤 二,开发软件 qt6.5.0 三,课题要求 面向对象 单元测试 模型部分 验证 四,整体流程 思路: 1,导入图片并使图片切换,形成动画 class kunkun : public QWidget { Q_OBJECT public: explicit kunkun(QWidget parent = nullptr); QPixmap m_Kunkun_Pix;//显示坤坤的图片 int min=1;//最小值 int max=7;//最大值 QTimer * timer;//定时器 void running();//执行动画 2,运动和用鼠标操控 //运动 QPoint m_Pos;//记录分量坐标 void mousePressEvent(QMouseEvent);//鼠标按下 void mouseMoveEvent(QMouseEvent*);//鼠标移动 void mouseRealeaseEvent(QMouseEvent*);//鼠标释放 bool mouseDown=false;//鼠标按下状态 3,建菜单 QMenu*m_Menu;//建菜单 算法 1,切换图片 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowIcon(QIcon(":/kunkun/kunkun.ico.ico"));

this->m_Kunkun =new kunkun;// 创建对象 this->m_Kunkun ->setParent(this);//对象显示到窗口中 this->setFixedSize(this->m_Kunkun->width(),this->m_Kunkun->height());//窗口尺寸 this->m_Kunkun->running(); connect(this->m_Kunkun,&kunkun::changePix,[=](){ update();//手动调用绘图 });//监听拖拽信号 connect(this->m_Kunkun,&kunkun::moving,[=](QPoint point){ this->move(point); m_Auto_Pos=point; });

2, //加载图片资源 for(int i=0;imax;i++){ QString str=QString(":/kunkun/kunkun%1").arg(i+1); this->m_Kunkun_Pix.load(str); } //坤坤の大小 this->setFixedSize(this->m_Kunkun_Pix.width(),this->m_Kunkun_Pix.height()); //定时器对象 this->timer=new QTimer(this); //监听定时器 connect(timer,&QTimer::timeout,={ QString str=QString(":/kunkun/kunkun%1").arg(this->min++); this->m_Kunkun_Pix.load(str); if(this->min>this->max){ this->min=1; } emit changePix();//抛出自定义信号 }); 3,实现运动 //获取屏幕 QRect mRect; mRect=QGuiApplication::primaryScreen()->geometry(); //监听 connect(timer,&QTimer::timeout,={ if (this->m_Kunkun->mouseDown !=true){

this->m_Auto_Pos.setX(this->m_Auto_Pos.x()+5);

}

if(this->m_Auto_Pos.x()>mRect.width()) { this->m_Auto_Pos.setX(-this->m_Kunkun->width()); } //窗口同步移动 this->move(this->m_Auto_Pos); }); this->setWindowFlags(Qt::FramelessWindowHint); this->setAttribute(Qt::WA_TranslucentBackground); this->setWindowFlags(this->windowFlags()|Qt::WindowStaysOnTopHint); this->m_Auto_Pos.setY(mRect.height()*0.5-this->m_Kunkun->height());

} 4,鼠标右键控制 void kunkun::mousePressEvent(QMouseEvent e) { this->m_Pos=e->globalPos()- ((QWidget)this->parent())->frameGeometry().topLeft(); this->mouseDown=true;//鼠标按下为真 if(e->button()==Qt::RightButton)//右键出菜单 { this->m_Menu->popup(QCursor::pos()); } } 5,鼠标左键拖动 void kunkun::mouseMoveEvent(QMouseEvent *e) { emit this->moving(e->globalPos()-this->m_Pos); }

void kunkun::mouseRealeaseEvent(QMouseEvent *) { this->mouseDown=false;//鼠标松开时,按下改为假 }//目的是实现按着时能让它不动 6,单元测试,能否正常工作 五,单元测试正常 六,收获 学会qt的安装和基本操作 学会导入图片并做逐帧动画 学会使窗口移动 学会隐藏窗口

相关知识

蔡徐坤的宠物,蔡徐坤有多少个宠物狗
男生将坤坤放入女神坤坤内的趣味蘑菇视频萌宠互动游戏
蔡徐坤最喜欢什么宠物,蔡徐坤有多少个宠物猫
蔡徐坤的未完成之宠物医院下期预告 坤坤将千千托付给新主人
蔡徐坤超温柔对待小宠物 蔡徐坤演绎“普拉达小王子”
蔡徐坤
蔡徐坤的宠物(蔡徐坤的宠物是狗吗图片)
蔡徐坤 第2页
广州名坤营养师培训中心
按照对等原则,露思下次也要抱一抱坤坤的宠物!

网址: 郭嘉轩/南开大学23C++桌面宠物坤坤 https://m.mcbbbk.com/newsview839218.html

所属分类:萌宠日常
上一篇: 聊城乖宝持续大涨,秦华身价再超百
下一篇: 山东聊城开发区:把“小宠物”打造