Hello guys,
i have a question relating QEventloop class. During my initialisation routine some functions should be started sequentially. To gaurantee that i wrote this peace of code:
//mainwindow.cpp
void MainWindow::doInit()
{
connect(this, SIGNAL(Function1Complete()), &loop, SLOT(quit()));
qDebug() << "Step1";
StartFuntion1();
loop.exec();
qDebug() << "Step2";
StartFuntion2();
}
void MainWindow::StartFuntion1()
{
...
emit Function1Complete();
}
//mainwindow.h
...
signals:
void Function1Complete();
//mainwindow.cpp
void MainWindow::doInit()
{
QEventLoop loop;
connect(this, SIGNAL(Function1Complete()), &loop, SLOT(quit()));
qDebug() << "Step1";
StartFuntion1();
loop.exec();
qDebug() << "Step2";
StartFuntion2();
}
void MainWindow::StartFuntion1()
{
...
emit Function1Complete();
}
//mainwindow.h
...
signals:
void Function1Complete();
To copy to clipboard, switch view to plain text mode
But when i run my code "Step2" is never reached. When i emit "Function1Complete" with an additional button like this
void MainWindow::handle_btnTest()
{
emit Function1Complete();
}
void MainWindow::handle_btnTest()
{
emit Function1Complete();
}
To copy to clipboard, switch view to plain text mode
my eventloop quits properly and everything works fine. Any ideas about that?
Bookmarks