Получилось таки добиться желаемого
C++ (Qt)
class ModelUpdateThread : public QThread
{
public:
ModelUpdateThread();
private:
QString query;
protected:
void run();
public:
void setQuery(QString query);
};
ModelUpdateThread::ModelUpdateThread()
{
model = new QSqlQueryModel();
model->moveToThread(this);
}
void ModelUpdateThread::run() {
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL","update");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setPort(3306);
db.setUserName("user");
db.setPassword("1234");
db.open();
model->setQuery(query,db);
db.close();
}
void ModelUpdateThread::setQuery(QString query) {
this->query = query;
this->start();
}
Эту модель из класса и вставляем потом в вид.
Еще можно
тут почитать про асинхронный доступ к бд.