将登录框的两个按钮进行实现,登录按钮需要手动连接自定义的槽函数,取消按钮右键转到槽
对于登录按钮对应的槽函数中实现:判断输入的账号是否等于"admin",密码是否为“123456”,如果匹配成功,则输出登录成功后关闭界面
如果匹配失败,输出账号和密码不匹配,请重新输入,并将密码框内容清空
对于取消按钮,在对应的槽函数中,关闭整个界面即可
运行结果
代码
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_quxiaoButton_clicked();
void my_slot();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
主函数
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
功能函数
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
//窗口
ui->setupUi(this);
this->setWindowIcon(QIcon(":/icon/QQ.png"));
this->setWindowTitle("QQ");
//设置文本的回显模式
ui->pwdEdit->setEchoMode(QLineEdit::Password);
//设置行编辑器占位符
ui->zhanghaoEdit->setPlaceholderText("QQ号码/手机/邮箱");
//图标化标签
ui->label->setScaledContents(true);
ui->label->setPixmap(QPixmap(":/icon/QQ.png"));
ui->label_2->setScaledContents(true);
ui->label_2->setPixmap(QPixmap(":/icon/denglu.png"));
ui->label_3->setScaledContents(true);
ui->label_3->setPixmap(QPixmap(":/icon/denglumima.png"));
//将登录的clicked信号手动与自定义的信号进行连接
connect(ui->dengluButton,SIGNAL(clicked()),this,SLOT(my_slot()));
}
Widget::~Widget()
{
delete ui;
}
//自定义实现槽函数
void Widget::my_slot()
{
QString zh = ui->zhanghaoEdit->text();
QString mm = ui->pwdEdit->text();
if(zh == "admin" && mm == "123456"){
qDebug()<<"登录成功";
close();
}else{
qDebug()<<"输入账号与密码不匹配,请重新输入";
ui->zhanghaoEdit->clear();
ui->pwdEdit->clear();
}
}
void Widget::on_quxiaoButton_clicked()
{
close();
}