Qt学习 第12节:更完善的注册界面

ui_LoginDialog.h

//下面两句话要注销掉,否则会导致点击消息提示框退出整个程序
//        QObject::connect(buttonBox, SIGNAL(accepted()), LoginDialog, SLOT(accept()));
//        QObject::connect(buttonBox, SIGNAL(rejected()), LoginDialog, SLOT(reject()));

/********************************************************************************
** Form generated from reading UI file 'LoginDialog.ui'
**
** Created by: Qt User Interface Compiler version 5.4.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_LOGINDIALOG_H
#define UI_LOGINDIALOG_H

#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QVBoxLayout>

QT_BEGIN_NAMESPACE

class Ui_LoginDialog
{
public:
    QVBoxLayout *verticalLayout_2;
    QSpacerItem *verticalSpacer;
    QVBoxLayout *verticalLayout;
    QGridLayout *gridLayout;
    QLabel *account_label;
    QLineEdit *account_edit;
    QLabel *passwordlabel;
    QLineEdit *password_edit;
    QHBoxLayout *horizontalLayout;
    QSpacerItem *horizontalSpacer;
    QDialogButtonBox *buttonBox;
    QSpacerItem *horizontalSpacer_2;
    QSpacerItem *verticalSpacer_2;

    void setupUi(QDialog *LoginDialog)
    {
        if (LoginDialog->objectName().isEmpty())
            LoginDialog->setObjectName(QStringLiteral("LoginDialog"));
        LoginDialog->resize(593, 340);
        QFont font;
        font.setPointSize(20);
        LoginDialog->setFont(font);
        verticalLayout_2 = new QVBoxLayout(LoginDialog);
        verticalLayout_2->setObjectName(QStringLiteral("verticalLayout_2"));
        verticalSpacer = new QSpacerItem(20, 69, QSizePolicy::Minimum, QSizePolicy::Expanding);

        verticalLayout_2->addItem(verticalSpacer);

        verticalLayout = new QVBoxLayout();
        verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
        gridLayout = new QGridLayout();
        gridLayout->setObjectName(QStringLiteral("gridLayout"));
        account_label = new QLabel(LoginDialog);
        account_label->setObjectName(QStringLiteral("account_label"));

        gridLayout->addWidget(account_label, 0, 0, 1, 1);

        account_edit = new QLineEdit(LoginDialog);
        account_edit->setObjectName(QStringLiteral("account_edit"));

        gridLayout->addWidget(account_edit, 0, 1, 1, 1);

        passwordlabel = new QLabel(LoginDialog);
        passwordlabel->setObjectName(QStringLiteral("passwordlabel"));

        gridLayout->addWidget(passwordlabel, 1, 0, 1, 1);

        password_edit = new QLineEdit(LoginDialog);
        password_edit->setObjectName(QStringLiteral("password_edit"));

        gridLayout->addWidget(password_edit, 1, 1, 1, 1);


        verticalLayout->addLayout(gridLayout);

        horizontalLayout = new QHBoxLayout();
        horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
        horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

        horizontalLayout->addItem(horizontalSpacer);

        buttonBox = new QDialogButtonBox(LoginDialog);
        buttonBox->setObjectName(QStringLiteral("buttonBox"));
        buttonBox->setLayoutDirection(Qt::RightToLeft);
        buttonBox->setOrientation(Qt::Horizontal);
        buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

        horizontalLayout->addWidget(buttonBox);

        horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);

        horizontalLayout->addItem(horizontalSpacer_2);


        verticalLayout->addLayout(horizontalLayout);


        verticalLayout_2->addLayout(verticalLayout);

        verticalSpacer_2 = new QSpacerItem(20, 68, QSizePolicy::Minimum, QSizePolicy::Expanding);

        verticalLayout_2->addItem(verticalSpacer_2);


        retranslateUi(LoginDialog);
//下面两句话要注销掉,否则会导致点击消息提示框退出整个程序
//        QObject::connect(buttonBox, SIGNAL(accepted()), LoginDialog, SLOT(accept()));
//        QObject::connect(buttonBox, SIGNAL(rejected()), LoginDialog, SLOT(reject()));

          QMetaObject::connectSlotsByName(LoginDialog);
    } // setupUi

    void retranslateUi(QDialog *LoginDialog)
    {
        LoginDialog->setWindowTitle(QApplication::translate("LoginDialog", "Dialog", 0));
        account_label->setText(QApplication::translate("LoginDialog", "\350\264\246\345\217\267\357\274\232", 0));
        passwordlabel->setText(QApplication::translate("LoginDialog", "\345\257\206\347\240\201\357\274\232", 0));
    } // retranslateUi

};

namespace Ui {
    class LoginDialog: public Ui_LoginDialog {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_LOGINDIALOG_H

LoginDialog.h

#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H

#include <QDialog>

namespace Ui {
class LoginDialog;
}

class LoginDialog : public QDialog
{
    Q_OBJECT

public:
    explicit LoginDialog(QWidget *parent = 0);
    ~LoginDialog();

private slots:
    void onAccepted(void);//处理Ok按钮的槽函数
    void onRejected(void);//处理Cancel按钮的槽函数

private:
    Ui::LoginDialog *ui;
};

#endif // LOGINDIALOG_H

 LoginDialog.cpp

#include "LoginDialog.h"
#include "ui_LoginDialog.h"
#include <QDebug>
#include <QMessageBox>

LoginDialog::LoginDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::LoginDialog)
{
    ui->setupUi(this);
    connect(ui->buttonBox,SIGNAL(accepted()),this,SLOT(onAccepted()));
    connect(ui->buttonBox,SIGNAL(rejected()),this,SLOT(onRejected()));
}

LoginDialog::~LoginDialog()
{
    delete ui;
}

void LoginDialog::onAccepted()
{
    if(ui->account_edit->text() == "username" && ui->password_edit->text() == "123456")
    {
        qDebug() << "login success !";
        close();
    }
    else
    {
        QMessageBox msgBox(
            QMessageBox::Critical,//图标
            "Error",//标题
            "username or password error",//提示消息
            QMessageBox::Ok,//按钮
            this);//父窗口

        msgBox.exec();//显示消息提示框,并进入事件循环
    }
}

void LoginDialog::onRejected()
{
    QMessageBox msgBox(
        QMessageBox::Question,//图标
        "Acquire",//标题
        "Cancel login ?",//提示消息
        QMessageBox::Yes|QMessageBox::No,//按钮
        this);//父窗口

    //显示消息提示框,并进入事件循环,点击Yes或No时候都会退出事件循环
    //但是返回结果不同,如果点击Yes则退出登录对话框
    if(QMessageBox::Yes == msgBox.exec())
    {
        close();
    }
}

main.cpp

#include "LoginDialog.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LoginDialog w;
    w.show();

    return a.exec();
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值