QtConcurrent :很方便的把一个函数加入多线程
阅读原文时间:2021年04月24日阅读:1
  connect(ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(slt_image_find())); // 连接信号
  ui->lineEdit->setPlaceholderText("输入查找图片ID:"); // lineEdit 提示信息


// 把执行多线程的代码放到槽函数 
void DefectFactoryInstance::slt_image_find()
{
    QFuture<int> result = QtConcurrent::run(this,&DefectFactoryInstance::image_find); // 把函数 image_find 放入多线程
    if(result == -1)
        show_information(widget, tr("提示"), tr("查找图片不存在"));
    else
        ui->ShowImageList->setCurrentRow(ans);
}
int DefectFactoryInstance::image_find()
{
    for(int i = 0; i < ui->ShowImageList->count(); i++){
        if(ui->lineEdit->text().toInt() == ui->ShowImageList->item(i)->data(Qt::UserRole).toInt())
            return i;
    }
    return -1;
}


// 把函数加入头文件(.h)
  connect(this, SIGNAL(returnPressed()), ui->ShowImageList, SLOT(slt_image_find())); // 连接信号
    ui->lineEdit->setPlaceholderText("输入查找图片ID:");