使用手动连接,将登录框中的取消按钮使用第二种方式,右击转到槽,在该函数中,调用关闭函数,将登录按钮使用Qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为“admin”,密码是否为“123456”,如果账号密码匹配成功,则输出“登录成功”,并关闭该界面,如果匹配失败,则输出登录失败,并将密码框中的内容清空。
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QString>
#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
public slots:
void my_slot(); //槽函数的声名
void my_slot2(); //槽函数的声名
private slots:
void on_cancelBtn_clicked(); //槽函数的声名
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
源文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->LogoLab->setPixmap(QPixmap(":/logo.png"));
ui->LogoLab->setScaledContents(true);
ui->userNameLab->setPixmap(QPixmap(":/login.png"));
ui->userNameLab->setScaledContents(true);
ui->passWdLab->setPixmap(QPixmap(":/passwd.jpg"));
ui->passWdLab->setScaledContents(true);
//点击"登入按钮",判断用户名和密码
connect(ui->loginBtn,SIGNAL(clicked()),this,SLOT(my_slot())); //信号发送者,发送的具体信号,信号接收者,槽函数
connect(ui->cancelBtn,SIGNAL(clicked()),this,SLOT(my_slot2()));
connect(ui->passWdEdit,SIGNAL(returnPressed()) //回车键发送按钮
,ui->loginBtn,SIGNAL(clicked()),Qt::UniqueConnection);
}
Widget::~Widget()
{
delete ui;
}
void Widget::my_slot()
{
QMessageBox *box = new QMessageBox(); //实例化一个box,用来弹出消息
box->setWindowTitle("提示");
if(QString(ui->userNameEdit->text()) == "admin" && QString(ui->passWdEdit->text()) == "123456")
{
box->setText("登录成功 ^_^ ");
box->show(); //提示
box->exec(); //等待用户响应
this->close(); //关闭窗口
}else
{
box->setText("账号密码错误");
box->show(); //提示
box->exec(); //等待用户响应
ui->userNameEdit->setText(""); //将输入的账号清空
ui->passWdEdit->setText(""); //将密码框清空
}
}
void Widget::on_cancelBtn_clicked()
{
this->close(); //关闭窗口
}
void Widget::my_slot2()
{
QMessageBox *box = new QMessageBox(); //实例化一个box,用来弹出消息
box->setWindowTitle("提示");
box->setText("用户取消登录,程序退出");
box->show(); //提示
box->exec(); //等待用户响应
this->close(); //关闭窗口
}
效果图
思维导图