天天看点

Qt 设计师 designer 登录对话框案例1. 通过设计师生成ui文件

Qt 设计师 designer 登录对话框案例1. 通过设计师生成ui文件

1. 通过设计师生成ui文件

Qt 设计师 designer 登录对话框案例1. 通过设计师生成ui文件
  • 1. 把username,passwd和后面的两个lineEdit,全框一起,然后栅格布局。
  • 2. 给buttonBox两边加弹簧,后把三个控件框一起,水平布局。
  • 3. 这是中间可以看做有两个大控件,给顶部和底部加两个弹簧,点击对话框空白位置,垂直布局。

LoginDialog.h

#ifndef __LOGINGDIALOG_H
#define __LOGINGDIALOG_H
#include "ui_LoginDialog.h"
#include <QDialog>
#include <QMessageBox>

class LoginDialog:public QDialog{
    Q_OBJECT // moc
public:
    LoginDialog(void);
    ~LoginDialog(void);
public slots:
    //处理OK按钮的槽函数
    void onAccpeted(void);
    //处理Cancel按钮的槽函数
    void onRejected(void);
private:
    Ui::LoginDialog* ui;
};
#endif //__LOGINGDIALOG_H
           

LoginDialog.cpp

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

// 构造函数
LoginDialog::LoginDialog(void):ui(new Ui::LoginDialog){
    // 界面初始化
    ui->setupUi(this);
    // 信号和槽的连接
    // 点击ok发送信号accepted
    QObject::connect(ui->m_btnBox, SIGNAL(accepted(void)), this, SLOT(onAccpeted(void)));
    // 点击cancel发送信号rejected
    QObject::connect(ui->m_btnBox, SIGNAL(rejected(void)), this, SLOT(onRejected(void)));
}

// 析构函数
LoginDialog::~LoginDialog(void){
    delete ui;
}

//处理OK按钮的槽函数
void LoginDialog::onAccpeted(void){
    if(ui->m_usernameEdit->text() == "xh" && ui->m_passwdEdit->text() == "123"){
        qDebug()<<"登录成功";
        close();
    }
    else{
        
        // 创建消息提示框
        QMessageBox msgBox(
            QMessageBox::Critical, // 图标
            "Error",               // 标题
            "用户名或密码错误",       // 按钮
            QMessageBox::Ok,       // 按钮
            this);                 // 父窗口
        // 显示消息提示框,并进入事件循环
        msgBox.exec();
    }
}

//处理Cancel按钮的槽函数
void LoginDialog::onRejected(void){
    // 创建消息提示框
    QMessageBox msgBox(
        QMessageBox::Question,              // 图标
        "登录",                              // 标题
        "是否真的要取消登录",                  // 按钮
        QMessageBox::Yes|QMessageBox::No,   // 按钮
        this);                              // 父窗口
    // 显示消息提示框,并进入事件循环, 如果点击Yes关闭对话框
    if(msgBox.exec() == QMessageBox::Yes){
        close();
    }
}
           

main.cpp

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

int main(int argc, char** argv){
    QApplication app(argc, argv);
    LoginDialog login;
    login.show();
    return app.exec();
}
           

result:

Qt 设计师 designer 登录对话框案例1. 通过设计师生成ui文件
Qt 设计师 designer 登录对话框案例1. 通过设计师生成ui文件
Qt

继续阅读