QT:Как вызвать функцию из другого потока?

Есть функция в MainWindow, обновляющая ListWidget элементами из базы данных:

//Синхронизация ListWidget с базой данных
void MainWindow::listWidgetUpdate()
{
    ui->listWidget->clear();
    QSqlQuery query_update("SELECT * FROM clients");
    QSqlRecord rec = query_update.record();
    while(query_update.next()){
        companyName = query_update.value(rec.indexOf("companyName")).toString();
        ui->listWidget->addItem(companyName);
        QVariant id = query_update.value(rec.indexOf("id")).toString();
        ui->listWidget->item(ui->listWidget->count()-1)->setData(Qt::UserRole, id);
    }
}

Работает она исправно, но при тестировании на 5000 записей, конкретно подвисает, GUi висит, окно не отвечает. Я в Qt недавно и ненадолго, поэтому разбираюсь на очень посредственном уровне, но я так понял, можно как-то запустить эту функцию из другого потока, как это сделать?


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