Я новичок, поэтому, если это сообщение не в том месте, просто сообщите мне, пожалуйста.
Я пытаюсь использовать потоки для "для циклов" в моей программе, но согласно моим исследованиям model->setData
не совместимо с потоками.
Итак, мои решения:
Я буду использовать разные модели в каждом потоке, а затем объединю их в одну, чтобы показать в виде таблицы.
Но я не знаком с Qt, поэтому я застрял здесь, я не знаю, как объединить две модели друг с другом, не могли бы вы проверить мой код?
{
t2 = std::thread{[&]{
const auto row_size = (RegexOperations_.indexed_arranged_file.size()
const auto col_size = RegexOperations_.indexed_arranged_file[0].size();
for(unsigned int i = 0 ; i < (row_size+1) / 2) ; i++)
{
for(unsigned int j = 0 ; j < col_size;j++)
{
std::string temp = RegexOperations_.indexed_arranged_file[i][j];
QModelIndex index = model ->index(i,j,QModelIndex());
model->setData(index,temp.c_str());
}
}
}};
//t3 = std::thread{[&]{
// const auto row_size = (RegexOperations_.indexed_arranged_file.size()
// const auto col_size = RegexOperations_.indexed_arranged_file[0].size();
// for(unsigned int i = (row_size+1) / 2) ; i < row_size;i++)
// {
// for(unsigned int j = 0 ; j < col_size;j++)
// {
// std::string temp = RegexOperations_.indexed_arranged_file[i][j];
// QModelIndex index = model ->index(i,j,QModelIndex());
// model->setData(index,temp.c_str());
// }
// }
//}};
t2.join();
//t3.join();
const auto tvr = ui->tableView_results;
tvr->setModel(model);
tvr->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
tvr->setEditTriggers(QAbstractItemView::NoEditTriggers);
}
Спасибо за вашу помощь ...