QT实现模式对话框(Model)

针对我这一版本的QT在VS2015版本的新建QMainWindow类型的项目,然后再建立一个基于QDialog类的项目,将所有的源文件都放进项目里的src文件夹(自己建立一个)

QT实现模式对话框(Model)_第1张图片

src文件夹里放源文件,bin里面可以将生成的程序放在这里

QT实现模式对话框(Model)_第2张图片

然后将原来的排除

QT实现模式对话框(Model)_第3张图片

最后再添加

QT实现模式对话框(Model)_第4张图片

然后重新定位LoginDialog.ui和QtGuiModel1.ui的ui_LoginDialog.h和ui_QtGuiModel1.h文件

编译通过

在LoginDialog.h输入

 

#pragma once

#include 
#include "ui_LoginDialog.h"

class LoginDialog : public QDialog
{
	Q_OBJECT

public:
	LoginDialog(const char* user, QWidget *parent = Q_NULLPTR);
private slots:
	int OnBtnOK();
	int OnBtnNO();
private:
	Ui::LoginDialogClass ui;
public:
	QString m_User;
	QString m_Password;
};


在LoginDialog.cpp输入

 

 

#include "LoginDialog.h"
#include 
LoginDialog::LoginDialog(const char* user, QWidget *parent)
	: QDialog(parent)
{
	ui.setupUi(this);
	ui.txtUser->setText(user);
	connect
	(
		ui.btnOK,
		SIGNAL(clicked()),
		this,
		SLOT(OnBtnOK())
	);
	connect 
	(
		ui.btnNo,
		SIGNAL(clicked()),
		this,
		SLOT(OnBtnNO())
	);

}


int LoginDialog::OnBtnOK()

{
	m_User = ui.txtUser->text();
	m_Password = ui.txtPassword->text();

	if (m_User == "Mars"&&m_Password == "123456")
	{
		QMessageBox::information(this, "OK", "Right Input");
		accept();//关闭对话框,让exec()返回Accepted
	}
	else
	{
		QMessageBox::information(this, "Error", "Wrong Input");
	}
	return 0;
}


int LoginDialog::OnBtnNO()
{
	reject();
	return 0;
}

QtGuiModel1.h输入

 

 

#pragma once

#include 
#include "ui_QtGuiModel1.h"

class QtGuiModel1 : public QMainWindow
{
	Q_OBJECT

public:
	QtGuiModel1(QWidget *parent = Q_NULLPTR);
private slots:
    int OnBtnLogin();
private:
	Ui::QtGuiModel1Class ui;
};

 


QtGuiModel1.cpp输入

 

 

 

 

 

#include "QtGuiModel1.h"
#include "LoginDialog.h"//头文件
#include 

QtGuiModel1::QtGuiModel1(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	connect
	(
		ui.btnLogin,
		SIGNAL(clicked()),
		this,
		SLOT(OnBtnLogin())
	);
}
int QtGuiModel1::OnBtnLogin()
{
	//使用模式对话框
	LoginDialog dlg("Mars",this);//加this后子窗口会在父窗口上面
	int ret =dlg.exec();//显示对话框,程序阻塞
	if (ret == QDialog::Accepted)
	{
		qDebug() << dlg.m_User << dlg.m_Password;
	}
	else
	{
		//用户点取消

	}
	return 0;
}


QT实现模式对话框(Model)_第5张图片

 

 

 

你可能感兴趣的:(Qt)