首页 > 其他分享 >Qt QtConcurrent::run()函数的两种写法

Qt QtConcurrent::run()函数的两种写法

时间:2024-01-29 15:46:42浏览次数:27  
标签:... QByteArray Qt QtConcurrent future run QImage

第一种,使用lambda表达式

1  QFuture<void> future = QtConcurrent::run([=]() {
2      // Code in this block will run in another thread
3  });
4  ...

第二种,使用成员函数

调用QByteArray的成员函数split()

1  // call 'QList<QByteArray>  QByteArray::split(char sep) const' in a separate thread
2  QByteArray bytearray = "hello world";
3  QFuture<QList<QByteArray> > future = QtConcurrent::run(bytearray, &QByteArray::split, ',');
4  ...
5  QList<QByteArray> result = future.result();

调用非成员函数:

1  // call 'void QImage::invertPixels(InvertMode mode)' in a separate thread
2  QImage image = ...;
3  QFuture<void> future = QtConcurrent::run(&image, &QImage::invertPixels, QImage::InvertRgba);
4  ...
5  future.waitForFinished();
6  // At this point, the pixels in 'image' have been inverted

 

标签:...,QByteArray,Qt,QtConcurrent,future,run,QImage
From: https://www.cnblogs.com/ybqjymy/p/17994649

相关文章

  • Failed to run the WC DB work queue associated with 错误的解决
    svncheckout代码是出现如标题的错误,提示我cleanup,cleanup失败,于是网上搜到了这一cleanup失败的解决方法,cleanup后再进入代码update就可以了svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。解决方法:清空svn的队列1.下载 sqlite3  2.找到你项目......
  • QT Creator12.0.1运行普通C/C++程序时候没有控制台输出
    问题:QTCreator12.0.1运行普通C/C++程序时候没有控制台输出菜单栏选择:[编辑]->[设置],按下图依次设置。启用终端输出,还有去掉内部终端输出的选项运行后控制台窗口正常弹出......
  • Qt/C++音视频开发64-共享解码线程/重复利用解码/极低CPU占用/画面同步/进度同步
    一、前言共享解码线程主要是为了降低CPU占用,重复利用解码,毕竟在一个监控系统中,很可能打开了同一个地址,需要在多个不同的窗口中播放,形成多屏渲染的效果,做到真正的完全的画面同步,在主解码线程中切换了播放进度,所有关联的同一个解码线程的播放窗体也会立即同步画面,使得感官上看起来......
  • Qt 深度解析QMap与QHash
    一、QMap深度解析1、QMap是一个以升序键顺序存储键值对的数据结构(1)QMap原型为classQMap<K,T>模板(2)、QMap中的键值对根据key进行了排序(3)、QMap中的key类型必须重载operator<(小于操作符)2、QMap使用实例一 3、QMap使用实例二4、QMap的注意事项(1)、通过key获取Value时......
  • CLion搭建Qt开发环境,并解决目录重构问题(最新版)
    序言Qt版本不断更新,QtCreator也不断更新。在Qt4和Qt5时代,我一直认为开发Qt最好的IDE就是自带的QtCreator,可是时至今日,到了Qt6时代,QtCreator已经都12.0.1版本了,不仅没变的更好用,反而变得更难用了。一方面可能是我被JetBrains全家桶和各种AI代码提示插件给惯坏了,另一方面也可能是开......
  • 【QT】选择和打开中文路径文件目录
    场景:Qt选择和打开目录,支持中文、空格等实现:#选择目录QStringstrDir="D:\\";QStringqslPath=QFileDialog::getExistingDirectory(this,"",strDir);ui->l_path->setText(qslPath);#打开目录QStringpath=ui->l_path->text();if(!path.isEmpty())QDe......
  • pyqt5基本安装过程(内含pip改变默认安装路径的方法)
    今天安装pyqt的时候发现pip总是会安装到一个我自己都找不到的地方,安装完和没安装一样,每次都只能靠pycharm中设置的安装库来救命。为了愉快的用命令行下载软件包(其实是因为qt需要安装的包太多),我改变了它的默认安装路径。如何改变pip默认安装路径先看一下python安装的默认位置以......
  • python--pyQt 基础框架代码 pyside6
    importsysfromPySide6importQtWidgets,QtCore,QtGuifromPySide6.QtCoreimportQt,QRectfromPySide6.QtGuiimportQColor,QEnterEventfromPySide6.QtWidgetsimportQApplication,QDialog,QMainWindow,QGraphicsDropShadowEffectimportyiqi_uiclassMain......
  • Qt中qreal的坑
    今天在写Qt的时候遇到了一个bug:同样一个方程在PC机上算的结果是11,但在arm-Linux设备上算出来的结果是12,我自己用计算器按出来的结果也是12。该段程序是这样的: maxnumbar=qreal((ItemHeight-radian*2)/height_rect);   其中 ItemHeight、radian、height_rect......
  • (QT) UDP监听断开
    UDP通讯只需要是用bind绑定对IP和Port的监听,断开监听可以使用函数abort() 做实验的时候用自定义类 classUDPClient:publicQObject{Q_OBJECTpublic:explicitUDPClient(QObject*parent=nullptr);publicslots:voidstartClient();voide......