“仅为学习而记录,如有纰漏,欢迎指正”
作业:一开始显示第一张图片画面,当我们点击登录,并且成功之后开始播放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); // 设置跳转到第几帧画面
代码写到这里就结束了。