c++ - 我应该如何在不同的线程中加载图像?
问题描述
如何在 Qt 的另一个线程中运行以下函数?
void Dialog::on_loadPicture()
{
ui->listWidget->setViewMode(QListWidget::IconMode);
ui->listWidget->setIconSize(QSize(80,100 ));
ui->listWidget->setResizeMode(QListWidget::Adjust);
ui->progressBar->setMaximum(vec.size());
ui->progressBar->setMinimum(progress.min());
QDirIterator it(path , QDirIterator::Subdirectories);
connect(&progress , SIGNAL(signalProgress(int)) , ui->progressBar , SLOT(setValue(int)));
progress.emit50();
while(it.hasNext())
{
item=new QListWidgetItem(QIcon(it.next()) , QString("1 (" + (QString::number(9)) + ").jpg" ));
QVariant pathData(it.filePath());
item->setData(Qt::UserRole , pathData);
ui->listWidget->addItem(item);
this->repaint();
ui->listWidget->repaint();
n++;
emit progress.signalProgress(n);
}
}
我像这样使用信号和插槽:
connect(§hread , &thread2::loadPicture , this ,&Dialog::on_loadPicture );
QFuture<void> future2=QtConcurrent::run(&this->secthread , &thread2::start);
但我猜(这个)词让我的主线程冻结。
解决方案
推荐阅读
- python - 范围函数不会打印值
- javascript - Jasmine - 如何测试元素 id 的变化?
- cmake - 来自 CMAKE 的 MIDL 编译器
- python - 在循环内定义类会导致内存泄漏
- css - 插入 Bootstrap Carousel 后导航栏大小更改为垂直(修复几天后仍然无法正常工作)
- python - 将内切圆绘制成阈值图像
- postgresql - Postgres 已经包含 kubernetes 中的数据库
- angular - 在 Angular 8 中使用会话 cookie 进行身份验证
- sharepoint - Shareplum 的问题。找不到“文件夹”属性
- android - Android - Kotlin - 如何让相机将位图缩略图放置在单击按钮的相同列表中