Как дождаться результата после сигнала/слота?
Помогите пожалуйста, не разбираюсь в потоках, но очень хочу понять что и как сделать 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();
// Не забыть, что где-то надо поток остановить и удалить
}