登录Dialog实现

登录对话框 QDialog类型的。Login

login.h
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>

namespace Ui {
class Login;
}

class Login : public QDialog
{
    Q_OBJECT
public:
    explicit Login(QWidget *parent = 0);
    ~Login();

private slots:
    void on_exit_clicked();
private:
    Ui::Login *ui;
};
#endif // LOGIN_H
login.cpp
#include "login.h"
#include "ui_login.h"
#include <QMessageBox>

Login::Login(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Login)
{
    ui->setupUi(this);
    this->setFixedSize(195, 210);

    connect(ui->login, &QPushButton::clicked, [=]()
    {   //登录按钮被点击
        QString name = ui->userID->text();
        QString pwd = ui->pwd->text();
        if(name.isEmpty() == true)
        {
            QMessageBox::warning(this, "ueername", "用户名不能为空!");
            return;
        }
        if(pwd.isEmpty() == true)
        {
            QMessageBox::warning(this, "pwd", "密码不能为空!");
            return;
        }

        if((name != "itcast") || (pwd != "itcast"))
        {
            QMessageBox::critical(this, "error", "用户名或密码输入错误!");
            return;
        }
        // 接受: 模态对话框结束
        this->accept();
        // QDialog::accept(); // QDialog::Accepted
    });
}

Login::~Login()
{
    delete ui;
}
void Login::on_exit_clicked()
{
    // 拒绝
    // QDialog::Rejected
    QDialog::reject();
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "login.h" //登录对话框

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    Login login; // 登录对话框对象
    if(QDialog::Accepted == login.exec())
    {
        // 登陆成功:主窗口对象显示
        MainWindow w;
        w.show();
        return a.exec();
    }
    else
    {
        return 0; // 取消登录
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容