qt的槽函数和gif播放

“仅为学习而记录,如有纰漏,欢迎指正”

作业:一开始显示第一张图片画面,当我们点击登录,并且成功之后开始播放gif图,当我们点击注册的时候,停止播放并且回到第一张图片。

纯代码

完成效果:
完成效果
补充1、如果想要在输入密码时自动隐藏密码,那么就修改一下密码框的echoMode属性。
设置密码显示框以*****形式进行显示的格式
在这里插入图片描述

补充2、设置输入框透明背景
在这里插入图片描述

整个作业的操作步骤
1、先在ui界面中画好如下
在这里插入图片描述
在这里插入图片描述
2、在编辑代码中添加这三个头文件

#include <QDebug> //调试输出到控制台头文件
#include <QMessageBox> //消息提示框头文件
#include <QMovie>  

在这里插入图片描述然后关联槽函数
(在我们ui界面的布局中,每一个控件都可以关联槽函数,当我们控件执行某一个动作时,都会有响应的信号发出,比如Qpush Button控件在按下时,就会发出一个click信号,我们可以把click信号关联到一个槽函数时,都会触发执行这个槽函数。注意:槽函数是要关联才可以触发执行的,不管联槽函数是触发不了的)
在这里插入图片描述

怎么关联槽函数???关联的方法有两种:
1、自动关联
2、手动关联

自动关联槽函数时,先改要关联的控件名,为了方便寻找控件
在这里插入图片描述
在这里插入图片描述
右键登录按钮,转到槽

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为了能够输出槽函数里的内容,所以得要添加qDebug头文件
在这里插入图片描述

//qDebug和printf ()用法差不多 
//注意,在qt里面最好不要用printf

为了当点击按钮时有提示框提示登陆成功,也要添加一个消息提示框头文件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

//假如电脑显示乱码就用这句
QMessageBox::information(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit(" 登录成功"));

//QMessageBox:: information(this , "提示" , "登录成功"); // 假如电脑显示不乱码就要这句

我们要在label中显示gif动画,那么我们也得要在头文件中添加QMovie类
在这里插入图片描述

在这里插入图片描述
然后定义一个movie对象
QMovie *movie;在这里插入图片描述然后设置gif的路径和放映方法(这个要放置gif图的label的对象名一定要改成gif,要不然找不到,因为下面的代码写的是ui->gif,这里的gif一定要与label的对象名一致)

在这里插入图片描述

 movie = new QMovie(":/susu.gif"); // 设置gif图的路径
    ui->gif->setScaledContents(true); // 自适应窗口大小.
    ui->gif->setMovie(movie); //设置通过ui界面把label里面gif显示出来
    movie->start(); //开始播放电影画面
    movie->stop();

获取到给gif的路径
在这里插入图片描述

在这里插入图片描述

然后开始获取账号密码(点击登陆按钮的方法)
在这里插入图片描述

void Widget::on_login_clicked() //登录按钮槽函定义
{
QString user, password;
qDebug ("push button is click");
user=ui->user->text();//获取账号框里面的内容
password=ui->password->text(); //获取密码框里面的内容

if(user=="root" && password== "123456") //比较账号密码
   {
       QMessageBox:: information(this , "提示" , "登录成功");
       movie->start(); //开始播放
}else
{
QMessageBox:: information(this , "提示" , "登录失败");
 }
 }

注册按钮的方法
在这里插入图片描述

 movie->setPaused(true);
    // movie->stop(); //停止
    movie->jumpToFrame(0); // 设置跳转到第几帧画面

代码写到这里就结束了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值