【发布时间】:2022-01-01 01:14:47
【问题描述】:
我在调试版本(在 Qt Creator 中加载)和发布版本中都有此代码。使用 Qt Creator 时,数据库似乎可以毫无问题地打开,但在运行发布可执行文件时会失败。我已经将一些丢失的 .dll 文件从 Qt bin 文件夹复制到了发布文件夹,以使应用程序在没有“丢失 .dll”错误的情况下加载,但似乎 QSql 可能缺少其他一些先决条件?
#ifndef LOGIN_H
#define LOGIN_H
#include <QMainWindow>
#include <QtSql>
#include <QtDebug>
#include <QFileInfo>
QT_BEGIN_NAMESPACE
namespace Ui { class login; }
QT_END_NAMESPACE
class login : public QMainWindow
{
Q_OBJECT
public:
QSqlDatabase EPMS_db;
void connClose()
{
EPMS_db.close();
EPMS_db.removeDatabase(QSqlDatabase::defaultConnection);
}
bool connOpen()
{
EPMS_db = QSqlDatabase::addDatabase("QSQLITE");
EPMS_db.setDatabaseName("C:/SQLite/EPMS_1.db");
if (!EPMS_db.open()) {
qDebug()<<("Database failed to connect");
return false;
}
else {
qDebug()<<("Database connected successfully");
return true;
}
}
public:
login(QWidget *parent = nullptr);
~login();
private slots:
void on_pushButton_clicked();
private:
Ui::login *ui;
};
#endif // LOGIN_H
【问题讨论】:
-
您的 login.cpp 看起来如何?