posted @ 2018-06-02 11:45 黑色の铅笔 阅读(1598) 评论(2) 推荐(0) 编辑
摘要:
本文是根据PaintEvent事件处理函数不停在组件中绘制视频帧数据 做过图像界面开发的都知道,任何耗时的操作都不能放在主线程进行,一旦主线程阻塞了,那么体现出来的就是界面卡了。 而我们读取视频和解码视频是一个非常耗时的操作,因此需要另外开辟一个线程来专门做这件事 项目准备工作: 1. 安装和配置Q 阅读全文
摘要:
1.带可变参数的函数由来 当函数中的参数个数不确定时,这时候就需要带可变参数的函数! 如我们经常使用的C库函数printf()实际就是一个可变参数的函数, 其原型为: 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的。例如我们可以有以下不同的调用方法: 2.带可变参数函数的实现 阅读全文
posted @ 2018-04-10 19:35 黑色の铅笔 阅读(18418) 评论(0) 推荐(0) 编辑
摘要:
1. 柔性数组的来源 有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间 p指向字符串。这种方法造成字符串与结构体是分离的,不利于操作。如果把字符串跟结构体直接连在一起,不是更好吗? 即申请一块动态内存空间,这段连续的空 阅读全文
posted @ 2018-04-09 19:47 黑色の铅笔 阅读(200) 评论(0) 推荐(1) 编辑
摘要:
1. 回顾事件传递的过程 ①源头:操作系统 操作系统检测到用户的动作时,就会产生一个系统消息,系统消息就会被发送到正在运行的Qt应用程序中, ②应用程序收到系统消息后, 他会将系统消息翻译成对应的QEvent事件对象,并调用QObject::event()将该对象分发下去, ③事件对象被分发到当前用 阅读全文
posted @ 2017-10-24 20:03 黑色の铅笔 阅读(1217) 评论(0) 推荐(1) 编辑
摘要:
1. 调用堆栈理解 首先介绍一下什么叫调用堆栈:假设我们有几个函数,分别是function1,function2,function3,funtion4,且function1调用function2,function2调用function3,function3调用function4。在function4 阅读全文
posted @ 2017-10-19 23:32 黑色の铅笔 阅读(7551) 评论(0) 推荐(1) 编辑
摘要:
1、图形界面应用程序的消息处理模型 特点: 基于操作系统才能运行 GUI应用程序提供的功能必须由用户触发 用户操作界面时操作系统是第一个感知的 系统内核的消息通过事件处理转变成QT的信号 2. Qt中的事件处理 (1)在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent. 事件处理 阅读全文
posted @ 2017-10-18 21:05 黑色の铅笔 阅读(17658) 评论(9) 推荐(4) 编辑
摘要:
1. 引言 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了 阅读全文
posted @ 2017-10-18 18:31 黑色の铅笔 阅读(3703) 评论(1) 推荐(0) 编辑