Как дождаться результата после сигнала/слота?

Помогите пожалуйста, не разбираюсь в потоках, но очень хочу понять что и как сделать https://wiki.qt.io/Qt_and_LaTeX_via_KLFBackend подсоединил библиотеку. Сделал так чтобы после нажатия кнопки появлялось новое окно, происходило считывание с файла и показывалось pixmap, но оно отрисовывает после page.exe().

Как сделать чтобы соединение работало как функция, в смысле, как поставить таймер или как задержать?

Поток только 1, но вот mPreviewBuilderThread это библиотека, которая наследуется от QThread и я не могу понять как обращаться и пользоваться

slot
void MainWindow::toPage(){
    page = new QDialog;
    mPreviewBuilderThread = new KLFPreviewBuilderThread(this, input, settings);
    /* код из примера */
    connect(mPreviewBuilderThread, SIGNAL(previewAvailable(const QImage&, bool)),
            this, SLOT(show_task(const QImage&, bool)), Qt::QueuedConnection);
    page.exe();
}

Ответы (1 шт):

Автор решения: Alexander Chernin

Скорее всего вот так надо сделать:

void MainWindow::toPage(){
    mPreviewBuilderThread = new KLFPreviewBuilderThread(this, input, settings);

    connect(mPreviewBuilderThread, SIGNAL(previewAvailable(const QImage&, bool)),
            this, SLOT(show_task(const QImage&, bool)), Qt::QueuedConnection);

    // Запускаем поток
    mPreviewBuilderThread->start();

    QDialog page;
    page.exec(); 

    // Не забыть, что где-то надо поток остановить и удалить   
}
→ Ссылка