实现效果:
点击登录,检验用户密码是否正确,正确则弹出消息框,点击ok转到另一个页面
不正确跳出错误消息框,默认选线为Cancel,点击Yes继续登录
点击Cancel跳出问题消息框,默认选项No,单击yes,退出程序,单击No继续登录
以下是实现的部分代码
widget.h
- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include
//基类QWidget的头文件 - #include
//信息调试类,用于输出数据使用 - #include
- #include
- #include
- #include
- #include
- #include"enter_widget.h"
- #include"communication.h"
- #include
- class Widget : public QWidget
- {
- Q_OBJECT //QT的信号与槽元对象
-
- public:
- Widget(QWidget *parent = nullptr);//默认参数构造函数声明
- ~Widget();//虚析构声明
- private:
- QLabel *pic;
-
- QLabel *tx;
-
- QPushButton* enter;
- QPushButton* login;
- QPushButton* question;
-
- QLabel* user;
- QLabel* passwd;
-
- QLineEdit* user_l;
- QLineEdit* passwd_l;
-
- enter_widget* en;
-
- QTimer * time;
- };
- #endif // WIDGET_H
widget.cpp
- #include "widget.h"
- #include
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- {
-
- qDebug()<<this->size(); //获取当前姐买你的尺寸
- qDebug()<<this->width(); //获取当前组件的宽度
- qDebug()<<this->height(); //获取当前组件的高度
- this->setWindowTitle("QQ");
- //this->resize(500,400);//重新设置界面大小
- //this->resize(QSize(1000,1000));
- this->setFixedSize(500,400);//设置固定的界面大小
- //this->setMaximumSize(600,700);//最大界面大小
- //this->setMinimumSize(200,300);//最小界面大小
- this->setWindowIcon(QIcon("://msg/qq.png"));
-
-
-
-
- pic = new QLabel(this);
- pic->resize(this->width(),130);
- pic->setPixmap(QPixmap("://msg/fm.png"));
- pic->setScaledContents(true);
-
-
- tx = new QLabel(this);
-
- tx->resize(100,100);
- tx->move(200,60);
- tx->setPixmap(QPixmap("://msg/2.jpg"));
- tx->setScaledContents(true);
-
-
- enter = new QPushButton;
- enter->setParent(this);
- enter->setText("登录");
- enter->resize(100,50);
- enter->move(120,300);
- enter->setIcon(QIcon("://msg/enter.png"));
- enter->setStyleSheet("border:0px solid black;border-radius:10;background-color:#FFFFFF");
-
- login = new QPushButton;
- login->setParent(this);
- login->setText("注册");
- login->resize(100,50);
- login->move(280,300);
- login->setIcon(QIcon("://msg/enter.png"));
- login->setStyleSheet("border:0px solid black;border-radius:10;background-color:#FFFFFF");
-
- // question = new QPushButton;
- // question->setParent(this);
- // question->setText("问题");
- // question->resize(50,50);
- // question->move(390,300);
- // question->setStyleSheet("border:0px solid black;border-radius:10;background-color:#FFFFFF");
-
- user = new QLabel;
- user->setParent(this);
- user->setText("用户名:");
- user->resize(60,30);
- user->setAlignment(Qt::AlignCenter);
- //user->setFixedSize(50,20);
- user->move(enter->x(),enter->y()-120);
-
- passwd = new QLabel(this);
- passwd->setText("密 码:");
- passwd->resize(60,30);
- passwd->setAlignment(Qt::AlignCenter);
- //user->setFixedSize(50,20);
- passwd->move(enter->x(),enter->y()-60);
-
-
- user_l = new QLineEdit(this);
- user_l->resize(200,30);
- user_l->move(user->x()+60,user->y());
- user_l->setPlaceholderText("请输入用户名");
- user_l->setStyleSheet("border:0px solid black;border-radius:10;background-color:#b0bfbf");
-
-
- passwd_l= new QLineEdit(this);
- passwd_l->resize(200,30);
- passwd_l->move(passwd->x()+60,passwd->y());
- passwd_l->setPlaceholderText("请输入密码");
- passwd_l->setEchoMode(QLineEdit::Password);
- passwd_l->setStyleSheet("border:0px solid black;border-radius:10;background-color:#b0bfbf");
-
- //切换界面
- //会话界面
- en = new enter_widget;
-
- //交流界面
- com = new communication;
-
-
- connect(enter,&QPushButton::clicked,[=](){
-
- if(user_l->text()==QString("admin") && passwd_l->text() == "123456")
- {
- QMessageBox succbox(QMessageBox::NoIcon,"登录","登录成功",QMessageBox::Ok,enter);
- int err = succbox.exec();
- if(err == QMessageBox::Ok)
- {
- this->close();
- com->show();
- }
- }
- else
- {
- int err = QMessageBox::critical(
- this,tr("错误"),
- tr("账号密码不匹配,是否重新登录"),
- QMessageBox::Yes | QMessageBox::Cancel,
- QMessageBox::Cancel
- );
-
- if(err == QMessageBox::Cancel)
- {
- int ques = QMessageBox::question(
- this,
- tr("问题"),
- tr("是否退出"),
- QMessageBox::Yes | QMessageBox::No,
- QMessageBox::No
- );
- if(ques == QMessageBox::Yes)
- {
- this->close();
- }
- }
- this->user_l->clear();
- this->passwd_l->clear();
- }
- });
-
-
- }
- Widget::~Widget()
- {
- }