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); // 設置跳轉到第幾幀畫面

代碼寫到這裏就結束了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章