Qt初级猜数游戏

编程入门 行业动态 更新时间:2024-10-24 02:32:33

Qt初级猜数<a href=https://www.elefans.com/category/jswz/34/1770081.html style=游戏"/>

Qt初级猜数游戏

Qt初级猜拳游戏

//Widget.cpp#include "widget.h"
#include "ui_widget.h"
#include <QTimer>
#include <QMovie>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//首先进行随机数设置//使用srand(time(NULL)); int n=rand()%(max-min+1)+min;//头文件使用<stdlib.h>或<cstdlib>srand(time(NULL));int n=rand()%101;//进行数字随机变化时间设置//使用QTimer头文件,计/定时器类头文件QTimer *timer=new QTimer();//创建QTimer类的对象“timer”  并使用new关键字进行内存空间的分配//timeout() 是QTimer类提供的一个信号,用来表示时间已到达,可以执行相应操作//timeout()与槽函数连接时应保证两者参数列表一致connect(timer,&QTimer::timeout,[&](){randNum=rand()%101;});//[](){函数体},一个无参数和返回值的lambda表达式,[]为捕获列表 ()为参数列表  {}是函数体 用于指定lambda表达式的具体操作//上文中使用“&”获取timeout()的地址,将timeout()信号和lambda连接起来//当start()的时间间隔达到时调用 Lambda 表达式,执行函数体内的操作,生成一个随机数并赋值给 randNum 变量timer->start(2000);//start(),用来启动定时器,是定时器QTimer的一个成员函数//timer->start(2000)   以毫秒启动 2秒//start()  默认时间启动  初始为0//setInterval()  达到一定的时间间隔后再触发 timeout() 信号//再进行图像资源的加载//使用QPixmap类,创建一个叫做pixmap的对象,通过load()加载图片资源//其中“.”是一个用来访问对象的操作符pixmap.load(":imgs/yanhua");//当报错“未声明的标识符“pixmap”的使用”时,应进入当前.cpp文件的.h文件的private下进行声明//使用QMovie类,创建一个动画对象movie的指针,用于加载和播放动画文件//new运算符进行动态内存分配movie=new QMovie(":imgs/yanhua");//同pixmap
}Widget::~Widget()
{delete ui;
}//再转入按钮槽 进行程序输出框,所需输出内容的编写
void Widget::on_pushButton_clicked()
{//猜一猜int inputNum=ui->lineEdit->text().toInt();//从用户界面的输入框(由ui->lineEdit表示)获取输入的文本//将其转换为整数类型,赋值给inputNum变量。//由于lineEdit可能包含文本,使用text()函数来获取输入的文本内容,//然后使用toInt()函数将其转换为整数。//ui->lineEdit是指向ui上QLineEdit对象的指针//QLineEdit是Qt中用于接收用户文本输入的小部件//text()是QLineEdit类的一个成员函数,用于获取输入的文本内容//toInt()是QString类的成员函数//QString是Qt中用于存储和操作字符串的类//toInt()将字符串转换为整型,并返回转换后的结果。qDebug()<<"随机数"<<randNum<<",输入框"<<inputNum;//randNum表示一个随机数的值//inputNum表示从输入框中获取的用户输入的数字。//最后进行判断条件的设定if(inputNum == randNum){ui->label->setMovie(movie);//ui是一个指向froms用户界面的指针,后接“->”进行用户界面部件的访问//label是ui界面用于进行文本或图像显示的控件//setmovie()是QLabel类的一个成员函数,用来关联movie和label//关联之后可以使label显示movie的动画movie->start();}else{// 判断动画是否正在播放(运行)//QMovie::Running表示动画正在运行//调用movie这个对象的成员函数start(),并通过“==”进行判断是否相等if(movie->state() == QMovie::Running){movie->stop();}ui->label->setText("不好意思你猜错了...");}}
//Widget.h#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_pushButton_clicked();private:Ui::Widget *ui;int randNum=0;QPixmap pixmap;//声明或创建了一个QPixmap类的实例化对象,名字为pixmapQMovie *movie;//使用指针创建是因为是为了动态地分配和管理内存//避免内存泄漏或不必要的资源占用//区别//直接声明,是在栈上分配内存,而内存,在函数或代码块结束后会自动释放。//这种情况适用于在当前作用域中使用对象和不用进行复杂的资源管理时应用//QMovie是Qt中用于处理动画的类//对于QMovie的对象,通常需要在程序的其他部分进行访问和控制,//可能需要长时间的播放或多次使用//使用指针可以将movie指针指向动态分配的内存,//再通过new运算符在堆上分配内存空间。//使用指针需要手动释放内存,避免内存泄漏//在不再需要使用对象时,调用delete释放内存空间,例如:delete movie;
};
#endif // WIDGET_H

更多推荐

Qt初级猜数游戏

本文发布于:2024-03-08 07:42:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720241.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:游戏   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!