qt连接数据库 driver not loaded

问题遇到的现象和发生背景

qt连接数据库,会报错,driver not loaded

问题相关代码,请勿粘贴截图

#include "DBConnectDialog.h"
#include
#include
#include<qdebug.h>
DBConnectDialog::DBConnectDialog( QSqlDatabase& database, QWidget* parent /= 0/)
: QDialog(parent)
, m_sqlDatabase(database)
{
// 调用该函数让设计的UI界面生效
setupUi(this);

read();

// 建立界面控件和响应槽函数之间的连接
connect(this->pushButton_openTest, SIGNAL(clicked()), this, SLOT(onTest()));
connect(this->pushButton_ok, SIGNAL(clicked()), this, SLOT(onConnect()));
connect(this->pushButton_cancel, SIGNAL(clicked()), this, SLOT(onCancel()));

}

DBConnectDialog::~DBConnectDialog()
{

}

void DBConnectDialog::onTest()
{
write();

//m_sqlDatabase.setHostName(this->lineEdit_host->text());
//m_sqlDatabase.setDatabaseName(this->lineEdit_dbname->text());
//m_sqlDatabase.setUserName(this->lineEdit_usr->text());
//m_sqlDatabase.setPassword(this->label_psw->text());
//if (m_sqlDatabase.open())
//{
//    this->label_infoText->setText("连接成功");
//    
//}
//else
//{
//    QMessageBox::warning(NULL, QStringLiteral("tips"), m_sqlDatabase.lastError().text(), QMessageBox::Yes);    
//    
//}
if (!m_sqlDatabase.open()) {
    this->label_infoText->setText(m_sqlDatabase.lastError().databaseText());
}
else {
    this->label_infoText->setText(tr("连接成功!"));
}


    

// TODO:
//1)打开m_sqlDatabase,如果成功,则将label_infoText显示为“连接成功”,否则,显示错误信息。

}

void DBConnectDialog::onConnect()
{
write();
//QSqlDatabase m_sqlDatabase = QSqlDatabase::addDatabase("QMYSQL");
// //连接数据库
// m_sqlDatabase.setHostName("localhost"); //数据库服务器IP
// m_sqlDatabase.setPort(3306);
// m_sqlDatabase.setUserName("root"); //数据库用户名
// m_sqlDatabase.setPassword("5110719qaq"); //数据库密码
// m_sqlDatabase.setDatabaseName("mysql"); //使用哪个数据库
// bool ok = m_sqlDatabase.open();
// if (ok)
//
// {
// QMessageBox::information(this, "infor", "success");
// }
// else {
// QMessageBox::information(this, "infor", "连接失败");
// qDebug() << "error open database because" << m_sqlDatabase.lastError().text();
// }

// TODO:
// (1)打开m_sqlDatabase,如果成功,则关闭对话框(accept),否则,通过QMessageBox显示数据库错误信息
if (!m_sqlDatabase.isOpen()) {
    if (!m_sqlDatabase.open())
        QMessageBox::warning(this, tr("错误信息"), m_sqlDatabase.lastError().databaseText());
    else {
        this->accept();
    }
}
else {
    this->accept();
}

}

void DBConnectDialog::onCancel()
{
this->reject();
}

void DBConnectDialog::write()
{
// TODO:
// (1)将界面上的连接信息对应设置在m_sqlDatabase中(如果不知道该调用哪些函数,可以通过Qt Assistant工具查看)
m_sqlDatabase.setHostName(this->lineEdit_host->text());
m_sqlDatabase.setUserName(this->lineEdit_usr->text());
m_sqlDatabase.setPassword(this->lineEdit_psw->text());
m_sqlDatabase.setDatabaseName(this->lineEdit_dbname->text());
}

void DBConnectDialog::read()
{
// TODO:
// (1)将m_sqlDatabase中的连接信息显示在对应的UI控件上(如果不知道该调用哪些函数,可以通过Qt Assistant工具查看)
// (2)判断m_sqlDatabase是否是打开状态,如果是则将label_infoText的文字显示为“连接成功!”,否则显示为“暂未连接”
this->lineEdit_host->setText("localhost");
this->lineEdit_usr->setText("root");
this->lineEdit_psw->setText("5110719qaq");
this->lineEdit_dbname->setText("mysql");

if (m_sqlDatabase.isOpen()) {
    this->label_infoText->setText(tr("连接成功!"));
}
else {
    this->label_infoText->setText(tr("暂未连接"));
}

}

运行结果及报错内容
我的解答思路和尝试过的方法

网上好多都尝试过了,但是都没有用

我想要达到的结果

想要连接数据库