Please instantiate the QApplication object first
-
Hi,
i.m trying to use QSqlDatabase to access a SQLITE database but it gives me that error while trying to load the plugin:
Please instantiate the QApplication object first
This it the main:
@int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.showMaximized();QApplication::addLibraryPath("\Program Files\Diagnostico\plugins\sqldrivers\");
QMutex *configurationMutex=new QMutex();
Configuration *configuration=new Configuration();Checker checker(0,configuration,configurationMutex);
Networker networker(0,configuration,configurationMutex);
Executer executer(0,configuration,configurationMutex);QThread checkerThread;
QThread networkerThread;
QThread executerThread;QObject::connect(&executerThread,SIGNAL(started()),&executer,SLOT(Start()));
QObject::connect(&w,SIGNAL(SignalTest()),&checker,SLOT(TestSlot()));checker.moveToThread(&checkerThread);
networker.moveToThread(&networkerThread);
executer.moveToThread(&executerThread);file_name();
checkerThread.start();
networkerThread.start();
executerThread.start();int returnValue=a.exec();
executerThread.wait();
return returnValue;
}@
What is my fault?
-
There are several. First, use this to add lib paths:
@
a.addLibraryPath("\Program Files\Diagnostico\plugins\sqldrivers\");
@Then, you are have completely missed the exec() call (a.exec()); Without the event loop (which is started in exec()), signals and slots won't work, the GUI will not work, etc. You need to do all this at a later stage, once the event loop is running. Try redesigning a bit, and ask again if you have troubles. It will be easier to address problems one by one, as they appear.
-
Hi ,
i found that in release mode it works (same code i posted before) while in debug mode it doesn't....
Maybe a debug mode issue?
-
Usually, the opposite is true ;)
-
I just had the same problem: Turns out I linked Qt5Widgets.lib instead of Qt5Widgetsd.lib
The answer is a bit late, but it might help somebody else