1,
使用手動連接,將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中,在自定義的槽函數中調用關閉函數
將登錄按鈕使用qt5版本的連接到自定義的槽函數中,在槽函數中判斷ui界面上輸入的賬號是否為"admin",密碼是否為"123456",如果賬號密碼匹配成功,則輸出“登錄成功”,并關閉該界面,如果匹配失敗,則輸出登錄失敗,并將密碼框中的內容清空
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//定義動態圖片指針QMovie *mv=new QMovie(":/Saved Pictures/th.gif");ui->label->setMovie(mv);//讓動態圖片開始動mv->start();//讓動態圖片自適應ui->label->setScaledContents(true);//向標簽插入圖片ui->urse_label->setPixmap(QPixmap(":/Saved Pictures/th.jpg"));//圖片自適應ui->urse_label->setScaledContents(true);ui->pass_label->setPixmap(QPixmap(":/Saved Pictures/th2.jpg"));ui->pass_label->setScaledContents(true);//占位ui->uresEdit->setPlaceholderText("賬號");ui->passEdit->setPlaceholderText("密碼");//對密碼進行保護ui->passEdit->setEchoMode(QLineEdit::Password);//隱藏頭部this->setWindowFlag(Qt::FramelessWindowHint);//將按鍵添加到界面But3=new QPushButton("關閉",this);//將播音添加到界面speecher=new QTextToSpeech(this);//改變按鍵位置But3->move(ui->But2->x(),ui->But2->y()+ui->But2->height()+20);//重新定義按鍵大小But3->resize(ui->But2->width(),ui->But2->height());// connect(But3,SIGNAL(clicked()),this,SLOT(close()));//對按鍵3進行信號和槽連接connect(But3,SIGNAL(clicked()),this,SLOT(my_slot()));connect(ui->But4,&QPushButton::clicked,this,&Widget::But4_slot);connect(ui->Button,&QPushButton::clicked,this,&Widget::Button_slot);}Widget::~Widget()
{delete ui;
}void Widget::my_slot(){//關閉界面this->close();}
//按鍵3控制按鍵1顏色
void Widget::on_But2_clicked()
{static int num=0;if(num%3==0){ui->But1->setStyleSheet("background-color:red");}else if(num%3==1){ui->But1->setStyleSheet("background-color:green");}else{ui->But1->setStyleSheet("background-color:yellow");}num++;}
//按鍵(講話)對其余按鍵的文本進行播送
void Widget::But4_slot()
{static int num1=0;if(num1%3==0){speecher->say(ui->But1->text());}else if(num1%3==1){speecher->say(ui->But2->text());}else{speecher->say(But3->text());}num1++;
}void Widget::Button_slot()
{//定義兩個字符數組分別獲取密碼和賬號QString buf=ui->passEdit->text();QString rbuf=ui->uresEdit->text();//對密碼和賬號進行判斷if(QString::compare(buf,"123456")==0 && QString::compare(rbuf,"admin")==0){//關閉界面this->close();qDebug() << "登錄成功";}else{//清空行編譯器ui->uresEdit->clear();ui->passEdit->clear();}
}
結果:
2,思維導圖