基于Qt 多线程(继承自QThread篇)

# 简介

    我们写的一个应用程序,应用程序跑起来后一般情况下只有一个线程,但是可能也有特殊情况。比如我们前面章节写的例程都跑起来后只有一个线程,就是程序的主线程。线程内的操作都是顺序执行的。恩,顺序执行?试着想一下,我们的程序顺序执行,假设我们的用户界面点击有某个操作是比较耗时的。您会发现界面点击完了,点击界面对应的操作还没有完成,所以就会冻结界面,不能响应,直到操作完成后,才返回到正常的界面里。如果我们的界面是这么设计的话,估计用户得发毛了。

    这种情况我们一般是创建一个单独的线程来执行这个比较耗时的操作。比如我们使用摄像头拍照保存照片。恩,很多朋友问,这个不算耗时吧。对的在电脑上使用 Qt 拍照,处理起来非常快。根本也不需要开启一个线程来做这种事。但是我们是否考虑在嵌入式的 CPU 上做这种事情呢?嵌入式的 CPU 大多数都没有电脑里的 CPU 主频(几 GHz)那么高,处理速度也不快。此时我们就需要考虑开多一个线程来拍照了。拍完照再与主线程(主线程即程序原来的线程)处理好照片的数据,就完成了一个多线程的应用程序了。

    官方文档里说,QThread 类提供了一种独立于平台的方法来管理线程。QThread 对象在程序中管理一个控制线程。QThreads 在 run()中开始执行。默认情况下,run()通过调用 exec()来启动事件循环,并在线程中运行 Qt 事件循环。您可以通过使用 QOb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169594.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android修行手册 - 可变参数中星号什么作用(冷知识)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

Vant 移动端UI

Vue项目中安装Vant # Vue 3 项目,安装最新版 Vant npm i vant 组件按需引入配置 vant按需引入- - -安装“unplugin-vue-components” 插件 Vite 中使用 Vant 的话,可以使用 “unplugin-vue-components” 插件,这个插件可以按需引入用到的Va…

联想小新Pro14默认设置的问题

联想小新Pro14 锐龙版,Win11真的挺多不习惯的,默认配置都不符合一般使用习惯。 1、默认人走过自动开机。人机互动太强了; 2、默认短超时息屏但不锁屏,这体验很容易觉得卡机然后唤起,却又不用密码打开; 3…

Linux之基础开发工具gdb调试器的使用(三)

文章目录 一、Linux调试器-gdb使用1、安装gdb2、背景3、Debug和release4、区分Debug和release 二、Linux调试器-gdb命令演示1、显示指定行之后的代码(自动记录最后一条指令)2、断点1、打印断点2、查看断点3、删除断点4、使能(禁用/开启&#…

STM32 寄存器配置笔记——GPIO配置输出

一、概述 本文主要介绍GPIO 作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。 二、配置流程 1)GPIO外设时钟 通过查找STM32F10xxx中文参考手册得知&#xf…

【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密

VSCode 插件 DevChat——国内开源的 AI 编程! 写在最前面DevChat是什么?什么是以提示为中心的软件开发 (PCSD)?为什么选择DevChat?功能概述情境构建添加到上下文生成提交消息提示扩展 KOL粉丝专属福利介绍D…

【Unity之UI编程】玩法面板的实现

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:UI_…

【零基础小白也能轻松学会】3DMAX编织建模教程

有没有想过这些木质材料是如何在椅子上相互交织的?复杂吗?也许是也许不是……本教程将指导您一步一步地以任何形式提出自己的复杂编织图案。本教程将重点关注建模部分,并让您从那里开始发挥想象力。 1.首先创建一个新平面(长度55&…

黑窗口连接远程服务

ssh root192.168.x.x 回车输入密码 查看docker docker ps 停止正在运行的服务 docker stop xxxxx 删除服务 docker rm xxxxx 查看镜像 docker images 删除镜像 docker rmi xxxxx 删除镜像 启动并运行整个服务 docker compose up -d jar包名称 idea 使用tcp方式连接docker 配置d…

nRF5 SDK 入门(三、理解 nRF5 SDK 应用与协议栈分开烧录)

说明一下 Nordic nRF5 SDK 软件 应用程序 和 协议栈分开烧录的理解前言 上一篇文章我们了解了 Nordic nRF5 SDK 目录结构,在那之前我们也已经搭建好了开发环境,实际上我们就已经可以进入我们的开发之旅了,但是如果刚接触 Nordic 蓝牙开发的小…

docker可视化

什么是portainer? portainer就是docker图形化界面的管理工具,提供一个后台面板供我们操作 目前先用portainer(先用这个),以后还会用到Rancher(CI/CD在用) 1.下载portainer 9000是内网端口,8088是外网访问端口 docker run…

面向对象基础(以python语言为例)

1、定义一个类;实例化类的对象;调用类中的方法 #定义一个类 class Student:#类方法(即函数)def study(self,course_name):print(f学生正在学习{course_name})def play(self):print("xx学生正在玩游戏")#实例化&#xf…