当前位置: 首页 > news >正文

QT 线程的使用

1.头文件: 

#include<QThread> 

2.在.h文件中定义全局:
QThread* threadTraj;
 void threadTrajProcess();//回调函数

3.在.cpp文件中:

threadTraj = new QThread();//初始化

//连接槽函数

QObject::connect(threadTraj, &QThread::started, this, MainForm::threadTrajProcess);

4.线程处理

void MainForm::threadTrajProcess()
{
    while(startTask)
    {
        cameraTraj->g_disply_fps++;
        if(!qImageForTraj.isNull())//开始任务
        {
            UsePythonFindTrack();
        }
        //QThread::msleep(10);//会阻塞线程,会影响到用户界面的响应性。
        QEventLoop loop;//非阻塞延时
        QTimer::singleShot(10, &loop, SLOT(quit())); // 等待0.01秒后退出循环
        loop.exec(); // 进入事件循环等待
    }
}

5。按键 开始/停止 任务
void MainForm::on_btnStartWork_clicked()
{

     if(startTask==false)//开始
     {                
        ui->btnStartWork->setText("结束任务");
        ui->btnStartWork->setStyleSheet(ui->btnStartWork->styleSheet()+ "QToolButton{ color: red;}");     //修改按键颜色
        startTask=true;
        threadTraj->start(); // 启动线程
     }
     else
     {
        ui->btnStartWork->setText("开始任务");
       ui->btnStartWork->setStyleSheet(ui->btnStartWork->styleSheet()+ "QToolButton{color: blue;}");
        startTask=false;
        threadTraj->quit();
         UseGetTrackGoal();
     }
}

6.销毁
//关闭
void MainForm::on_btnMenu_Close_clicked()
{
    if(startTask)
    {
        startTask=false;
        threadTraj->quit();
    }
    close();
}

相关文章:

  • PDF锐化
  • 【运输层】传输控制协议 TCP
  • easyExcel - 动态复杂表头的编写
  • leetcode热题HOT146. LRU 缓存
  • 【简单讲解下Kotlin】
  • 蓝桥杯 - 受伤的皇后
  • redis的三大模式的演化及集群模式思考和总结
  • Git汇总
  • 【开源书籍】深入讲解内核网络、Kubernetes、ServiceMesh、容器等云原生相关技术。
  • JavaIO输入输出
  • 企业如何设计和实施有效的网络安全演练?
  • 大话设计模式——六大基本设计原则(SOLID原则)
  • 【C语言】扫雷小游戏
  • 路由Vue-Router使用
  • windbg托管内存泄漏排查
  • 魔众 文库配置异步转换
  • 网格矢量如何计算莫兰指数
  • SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)
  • Mac下Docker Desktop starting的解决方法
  • 电商系列之风控安全
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读