在我的应用程序中,我使用QSqlDatabase来存储一些信息。我用下面的命令成功构建了它(没有任何错误,即使verbose=3
):使用QSqlDatabase Qt应用程序在使用macdeployqt构建时无法正常工作
macdeployqt AppName.app/ -dmg -qmldir=~/dev/AppName/qml
,我使用端口
sudo port install mysql55
如果我尝试运行我的应用程序也不会崩溃成功安装mysql55之前,但它也不涉及数据库访问。
这是我打开数据库等代码:
#include <QSqlQuery>
#include <QSqlDriver>
const QString DATABASE_NAME = "com.company.program.db";
MyClass::MyClass(QObject *parent) : QObject(parent) {
mDB = QSqlDatabase::addDatabase("QSQLITE");
#ifdef Q_OS_LINUX
QString path(QDir::home().path());
path.append(QDir::separator()).append(DATABASE_NAME);
path = QDir::toNativeSeparators(path);
mDB.setDatabaseName(path); // NOTE: We have to store database file into user home folder in Linux
#else
mDB.setDatabaseName(DATABASE_NAME); // NOTE: File exists in the application private folder, in Symbian Qt implementation
#endif
bool notOpened = !mDB.open();
QMessageBox::critical(0, "MyClass", mDB.lastError().databaseText()); // always is 'out of memory'
if (notOpened) emit failedToOpen();
else {
// some initialization
}
}
MyClass::~MyClass() {
mDB.close();
}
任何人都经历了这样一个相同的问题/修复?
注:我使用的是Mac OS X 10.9和Qt5.3.2
开后失败,尝试获取,并通过调用mDB-> lastError()检查错误信息 - > databaseText() – 2014-10-02 08:46:22
奇怪事情是它不会发出信号'failedToOpen' – Niklas 2014-10-02 09:18:13
在代码 – 2014-10-02 09:20:10