- 博客(914)
- 资源 (186)
- 收藏
- 关注

原创 Qt编写物联网管理平台(支持win/linux/mac/嵌入式linux/modbus等)
这个物联网综合管理平台前后迭代了五年,一点一滴慢慢积累起来,从最开始的只有modbus串口协议解析以及简单的表格显示数据,慢慢的逐渐增加了tcp_rtu支持,用户管理模块,地图监控模块,而后为了拓展性又做了云端数据同步,网络数据转发等。
2022-11-28 09:00:51
7611
7

原创 Qt编写项目作品大全
Qt编写的项目作品大全,包括自定义控件大全、属性设计器(组态)、输入法、物联网综合管理平台、可视化大屏电子看板系统、视频监控系统、视频综合应用示例、音频综合应用示例、本地摄像头应用示例、智能安防集中管理平台、界面开发大全、视频监控Onvif综合示例、自定义曲线图柱状图、数据导入导出(xls/pdf)及打印示例、图片及视频TCP/UDP网络传输、地图综合应用(在线+离线+区域+下载)、网络请求客户端/服务器、推流综合应用示例、多线程文件传输等
2021-01-20 18:37:22
99115
67

原创 Qt编写安防视频监控系统(支持win/linux/mac/海康/大华/宇视/264/265等)
一、前言视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅猛,人脸识别相关的技术和应用这几年处于风口浪尖,衍生了特别多的应用产品,各种人脸识别的产品遍地开花,刷脸门禁,车站机场人脸识别,刷脸取票等,但是其实大部分内行人士可能都比较绝望,外行感觉像看科幻片一样...
2019-05-23 17:31:43
40466
24

原创 Qt编写数据可视化大屏界面电子看板系统
前言目前大屏大数据可视化UI这块非常火,趁热也用Qt来实现一个,Qt这个一站式超大型GUI超市,没有什么他做不了的,大屏电子看板当然也不在话下,有了QSS和QPainter这两个无敌的工具组合,借用几个Qt高手朋友的话来说,都是分分钟。在整个系统的编写过程中,发现数学知识真的还是蛮重要的,在重要的几个算法点上,需要多次用到二元一次方程才能搞定几个算法,比如如何分组绘制柱状图。电子看板介绍电子...
2019-05-05 22:31:19
19465
28
原创 Qt编写视频监控系统77-Onvif组件支持非正常时间的设备
在经历了大量的现场设备测试,至少几十种厂家、几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带的不是设备上的时间很可能鉴权失败。
2023-05-30 09:16:10
351
原创 Qt编写视频监控系统76-Onvif跨网段组播搜索和单播搜索的实现
在视频监控行业一般会用国际onvif工具来测试设备是否支持onvif协议,工具的名字叫ONVIF Device Manager(还有个工具叫ONVIF Device Test Tool,专用于程序员测试各种数据交互),可以自行搜索下载,此工具位国际官方工具,如果此工具搜索不到摄像机,则说明该摄像机不是真正的onvif摄像机,不是标准的摄像机,目前市面上的绝大部分网络摄像机都支持onvif。具体用法可以参考。
2023-05-28 13:07:51
836
原创 Qt编写视频监控系统75-计算实时码率并显示
做监控摄像头的实时视频显示,一般还会要求统计实时码率显示在通道画面上,一个是为了测试下整个软件的性能,同时也看下当前到底是主码流还是子码流,设备到底是不是真的按照设定的码流大小来传输视频数据的。视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
2023-05-25 08:43:26
846
原创 Qt编写视频监控系统74-悬浮工具栏(半透明/上下左右位置/自定义按钮)
在监控系统中一般在视频实时预览的时候,希望提供一个悬浮工具条,可以显示一些提示信息比如分辨率、码率、帧率,提供一堆快捷操作按钮,可以录像、抓拍、云台控制、关闭等操作,参考了国内很多监控厂商客户端软件,总结下来基本就是悬浮条可以半透明悬浮在通道窗体上,也有少部分是固定嵌入在底部,个人觉得还是悬浮在顶部最为通用便捷,视频预览通道控件主要是用来预览的,应该尽量保证最大化的显示视频,所以采用悬浮的方式最佳,鼠标移动过去自动显示,移出去后自动隐藏,而且半透明的效果保证工具条出来的时候还能看到被遮住位置的画面。
2023-05-23 09:51:17
748
原创 Qt开发经验小技巧266-270
下拉框控件QComboBox默认会根据item的字符宽度调整下拉框的宽度,比如其中某个item文本很长,则下拉框会变的很宽,甚至把整个界面撑大看起来变形的感觉,有时候我们不希望是这样,有多个方法可以去掉,方法一就是设置下拉框的拉伸策略为QSizePolicy::Ignored,然后将下拉框放到一个容器中,保证容器布局中的其他控件都是有固定尺寸或者fix填充尺寸,这样下拉框就是默认自动拉伸的而且保证不会跟着item的宽度变宽。即可,整个项目中所有下拉框都会自动应用这个策略。
2023-05-22 09:05:40
476
原创 Qt推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)
推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页直接播放hls/m3u8/webrtc类型的视频流,而且推流的主要目的可能就是为了能够在各个客户端中取流播放,尤其是网页端,毕竟在各种操作系统上,网页浏览器是基础组件,只要你的程序能够在网页中运行,那就相当于通吃各种操作系统,不用再去费劲心力的去开发各个平台的程序。
2023-05-19 08:35:32
1372
原创 Qt编写视频监控系统73-不同视频流不同类型的判断和解析(http/m3u8/rtsp/rtmp等)
这套视频监控系统大概从2018年起步整体框架,一步步积累到现在,中间经历了无数次的各种视频文件、视频流、视频设备的播放测试,比如光视频文件就有mp4/wmv/rmvb/mkv/avi等格式,视频设备有本地USB摄像头、桌面等,视频流有rtmp/rtsp/rtp/http等,其中http开头的就有视频文件和视频流两种,就算是http开头的m3u8格式的,也可能是视频文件或者视频流,所以要有一个统一的标准来定制该地址对应的是视频文件还是视频流,视频文件是有文件时长的,意味着可以拖动进度条,而视频流是没有文件时长
2023-05-17 09:20:25
866
原创 Qt推流程序(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)可在网页和播放器远程观看
推流直播就是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号从手机端,电脑端,摄影机端打包传到服务器的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验比较糟糕。主流推送协议有RTMP、HLS、SRT等。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。使用RTMP传输的延时通常在1–3秒,适合手机端。不过RTMP不支持浏览器,如果直播服务需要浏览器,需要另外的推送协议支持。
2023-05-13 14:13:26
1333
原创 Qt编写视频监控系统72-通过onvif增删改查OSD
之前监控系统中原创的onvif协议解析机制,已经能够满足绝大部分用户的需要,比如搜索设备、获取视频流地址并播放、云台控制、预置位管理、图片亮度色彩饱和度等参数设置等,近期又多了一个需求,那就是通过onvif国际标准协议来对摄像头的OSD进行增删改查,可以通过协议添加OSD、删除OSD、修改OSD、查询所有OSD集合信息等,在早期的厂家监控设备,很多厂家是不支持该协议的,所以一直也没有去实现,目前测试下来是几个大厂比如海康大华宇视天地伟业等实现了,仅限于官方的标准过检的设备,如果是一些冒牌的设备,尽管后台看起
2023-05-12 09:21:57
1020
原创 Qt音视频开发45-音视频类结构体参数的设计
视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结构体参数的获取和设置单独提供了函数,参阅海康大华等大厂的sdk的设计方式,也是将众多的参数统一归类的不同的结构体中,这样后期非常容易就能拓展,比如又新增一个参数,只需要动结构体就行,但是也有个不完美的地方就是,如果没有提供单独的参数设置接口,需要先获取之前的结构体参数,然后在此基础上修改,最后重新设置,因为如果你没有先获
2023-05-09 12:02:55
1086
1
原创 Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)
本地摄像头推流和本地桌面推流类似,无非就是采集的设备源头换成了本地摄像头设备而不是桌面,其他代码完全一样。采集本地摄像头实时视频要注意的是如果设置分辨率和帧率,一定要是设备本身就支持的,如果不支持那就歇菜,比如设备本身最大分辨率到1280x720,你主动设置要采集1080x720分辨率的图像,那是采集不到的,会失败的,如果默认不设置,一般会采用640x480分辨率以及25帧率去采集。
2023-05-05 09:52:16
1248
原创 Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)
采集电脑屏幕桌面并推流一般是用来做共享桌面、远程协助、投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少,一般采用ffmpeg来做桌面推流的居多,毕竟如果不采用代码直接ffmpeg一行命令即可(ffmpeg -f gdigrab -r 30 -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp -g 5 -an rtsp://19
2023-05-04 08:33:52
708
原创 Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)
上次实现的文件推流,尽管优点很多,但是只能对现在存在的生成好的音视频文件推流,而现在更多的场景是需要将实时的视频流重新推流分发,用户在很多设备比如手机/平板/网页/电脑/服务器上观看,这样就可以很方便的将分散的视频流统一集中的流媒体服务器上,然后统一对外分发视频,而不是全部从设备端取流,大大减轻了设备端的压力,流媒体服务器就专门干这个事情负责分发,功能单一不容易出错,支持的并发数量很高。
2023-04-29 09:27:20
1979
原创 Qt音视频开发41-文件推流(支持网页和播放器播放并切换进度)
本功能最初也是有一些人提过类似的需求,就是能不能将本地的音视频文件,通过纯Qt程序推流出去,然后用户可以直接在网页上播放,也可以用各种播放器播放,然后还可以任意切换播放进度,其实说白了就是个文件服务器,用户通过网络地址访问以后,告诉对方当前是媒体文件就会自动播放,是其他文件则可以开启下载,很多视频网站最初也是按照这个思路来设计,当然缺点很明显,那就是无法防止用户下载,毕竟这个本来就是当做文件发给用户的,无所谓保密的需求,话说现在的无论哪一种视频网站,只要能播放,用户就能通过各种手段录制下来的,也是无法规避这
2023-04-27 09:13:14
1095
原创 Qt音视频开发40-ffmpeg采集桌面并录制
之前用ffmpeg打通了各种视频文件和视频流以及本地摄像头设备的采集,近期有个客户需求要求将整个桌面屏幕采集下来,并可以录制保存成MP4文件,以前也遇到过类似的需求,由于没有搞过,也没有精力去摸索和测试,所以也就一直耽搁着,近期刚好这个需求又来了,定下心来试了试,原来非常简单,模式和采集本地摄像头设备一样,调用av_find_input_format的参数从dshow改成gdigrab即可,然后打开的地址改成desktop,而且采集后保存到MP4文件的整个流程完全一致,根本不用做任何改动,完全可用,可以说f
2023-04-24 16:44:18
1439
原创 Qt编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)
将从网络摄像头拉流过来的视频流重新推流出去,是目前一个很常规的做法,尤其是推流到流媒体服务中心,这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理,同时提供对外一致的访问接口。
2023-04-22 09:42:27
1253
原创 Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头/网络摄像头/转发推流/视频分发)
1. 支持各种本地视频文件和网络视频文件。2. 支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。3. 支持将本地摄像头设备推流,可指定分辨率和帧率等。4. 支持将本地桌面推流,可指定屏幕区域和帧率等。5. 自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。6. 可实时切换预览视频文件。7. 推流的清晰度和质量可调。8. 可动态添加文件、目录、地址。
2023-04-20 08:49:20
2764
11
原创 Qt音视频开发39-海康sdk回调拿到数据GPU绘制的实现
采用海康的sdk做开发,最简单最容易的方式就是传入句柄(windows和linux都支持/很多人以为只有windows才支持)即可,这种方式不用自己处理绘制,全部交给了sdk去处理,所以cpu的占用是最低的;
2023-04-19 09:26:30
766
原创 Qt音视频开发38-ffmpeg视频暂停录制的设计
基本上各种播放器提供的录制视频接口,都是只有开始录制和结束录制两个,当然一般用的最多的也是这两个接口,但是实际使用过程中,还有一种可能需要中途暂停录制,暂停以后再次继续录制,将中间部分视频不需要录制,跳过这部分不需要的视频,而且录制的视频文件必须是能够正常播放的连续的。vlc和mpv都只提供了开始录制和停止录制接口,ffmpeg既然是自己解码,所以录制完全自己控制,存储的时候,每一帧的数据都要写入pts和dts,每次重新计算时间基准保证时间正确,不然不是连续的帧保存后会跳。
2023-04-17 17:40:11
1304
1
原创 Qt音视频开发37-识别鼠标按下像素坐标
在和视频交互过程中,用户一般需要在显示视频的通道上点击对应的区域,弹出对应的操作按钮,将当前点击的区域或者绘制的多边形区域坐标或者坐标点集合,发送出去,通知其他设备进行处理。比如识别到很多人脸,用户单击某个人脸后指定对该人脸进行详细的信息查询等;再比如圈出某个区域发给人工智能处理设备,对指定区域进行越界处理,一旦某个物体入侵到这个区域则立即报警。
2023-04-13 10:45:18
1095
原创 Qt编写推流综合应用示例-文件推流
1. 指定网卡和监听端口,接收网络请求推送音视频等各种文件。2. 实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。3. 可指定多种模式,0-直接播放、1-下载播放。4. 实时打印显示各种收发请求和应答数据。5. 每个文件对应MD5加密的唯一标识符,用于请求地址后缀区分访问哪个文件。6. 支持各种浏览器(谷歌chromium/微软edge/火狐firefox等)、各种播放器(vlc/mpv/ffplay/potplayer/mpchc等)打开请求。7. 播放过程中可以任意切换
2023-04-11 08:47:42
669
原创 Qt音视频开发36-超时检测和自动重连的设计
如果网络环境正常设备正常,视频监控系统一般都是按照正常运行下去,不会出现什么问题,但是实际情况会很不同,奇奇怪怪七七八八的问题都会出现,就比如网络出了问题都有很多情况(交换机故障、网线故障、带宽故障等),所以监控系统在运行过程中,还得做超时检测,超过规定的时间没有收到数据则认为掉线了,需要重连,超时检测有两个地方需要,一个是打开的时候,因为受限于网络等,默认超时时间是30s太久,在打开之前,可以做个简单的连接探测是否地址通,不通就不用继续;
2023-04-10 09:40:25
1026
1
原创 Qt音视频开发35-左右通道音量计算和音量不同范围值的转换
视频文件一般会有两个声音通道及左右声道,值有时候一样有时候不一样,很多场景下我们需要对其分开计算不同的音量值,在QAudioFormat中可以获取具体有几个通道,如果是一个通道,则左右通道值设定一样,计算通道的音量值一般是对所有音量数据转换后累加后进行一个换算即可,在Qt的示例中就提供了这个计算规则。
2023-04-07 08:38:40
695
原创 Qt音视频开发34-不同库版本不同位数的库和头文件的引用
做开发过程中难免遇到需要引入第三方库的时候,而且需要在不同库版本、不同系统、不同位数下都需要。第三方的库版本众多,一般在大版本中的小版本都是兼容的,但是大版本不兼容,比如ffmpeg目前就有1-6六个大版本,除去1几乎没人用那还剩5个大版本,目前主要还是4居多。vlc主要是vlc2和vlc3两个版本,这些大版本头文件和库文件都不兼容的,所以如果项目中要同时支持这些版本,需要有标志位让用户自己选择使用哪个版本,而且还有不同的位数32/64要求。
2023-04-05 09:31:34
768
原创 Qt音视频开发33-vlc和mpv打开后鼠标打圈圈问题的解决
如果采用的vlc句柄模式,如果鼠标停留在句柄控件中会发现在打开后鼠标打圈圈,mpv句柄模式是在关闭后鼠标打圈圈,这两者真是一前一后,这种给人的体验其实很不友好的,播放开始后或者播放完成后鼠标指针居然变成了繁忙,但是当你将鼠标位置从句柄控件中移到外面的时候,他又会自动恢复,所以需要有个机制主动恢复鼠标形状,一开始想的办法是模拟移动鼠标位置移来移去,当有几十个上百个通道的时候,这样移来移去看起来就是很傻的感觉,后面想了个办法用系统的api强制将鼠标指针恢复,测试下来还是有点怪怪的,后面发现Qt本身就内置了鼠标指
2023-04-02 09:38:17
1688
3
原创 Qt音视频开发32-qmedia内核回调拿图片数据
使用qmediaplayer来打开视频并播放,默认首选会采用QVideoWidget控件来展示,优点是不用自己来绘制,一切交给了QVideoWidget控件,这样可以做到极低的CPU占用,缺点也明显,就是无法拿到每一帧的图片,很多时候我们还需要主动拿到每一帧的图片来运算做人工智能,通过不断的截图虽然也能拿到图片,但是看起来就是很幼稚的做法,从源头拿到图片数据才是王道,所以必须用到AbstractVideoSurface,QVideoWidget本身也是继承自AbstractVideoSurface,在里面的
2023-03-31 13:13:46
1007
原创 Qt开发经验小技巧261-265
代码中判断当前Qt库是32位还是64位,用QSysInfo::WordSize=32/64。QTreeView控件设置左侧branch图标大小,无法通过qss设置,万能大法查看源码得知控制宽度最后取决于indentation参数,indentation的默认值根据系统环境不同而不同,比如1080P分辨率下是20,你要放大可以通过 setIndentation(30) 来设置。在对选项卡控件QTabWidget设置样式表的时候,很多人希望能做成类似浏览器或者资源管理器中上面选项卡的样子,就是选中的tab上边左
2023-03-30 08:44:36
575
原创 Qt音视频开发31-qmedia内核qt5/qt6播放视频
在qt5中的多媒体框架明显比qt4丰富了很多,使用也极其友好,提供的api接口非常简单明了,不需要像qt4中那样还需要绑定和创建路径之类的。同样也还是依赖本地解码器,qt6中的多媒体框架据说重写了,性能暴增很多,后端还支持多种解码方式,比如可以选用ffmpeg作为后端解码,这样的话就统一起来了,而且完全的跨平台,性能上主要体现在cpu的占用极低,但是也有缺点,那就是目前为止的版本比如Qt6.5及以下,还不支持视频流的播放,具体原因未知,不知道后期是否会加入支持还是架构原因不支持。
2023-03-29 09:08:56
371
原创 Qt音视频开发30-qmedia内核qt4方案phonon播放(支持视频流)
在Qt4中如果需要播放视频,一般用phonon多媒体框架,这应该就是Qt5/Qt6中多媒体框架的前身(查阅qmultimedia模块的相关代码可以发现架构几乎雷同,除了部分命名变了以外),phonon多媒体框架本身也是没有内置解码器的,意味着用它实现的功能,依赖本地解码器,在windows上你需要安装k-lite或者LAV Filters,在linux上你需要安装GStreamer(sudo apt-get install gstreamer1.0-libav ubuntu-restricted-extra
2023-03-27 11:34:58
1118
原创 Qt音视频开发29-ffmpeg中x264/x265编码库支持
有了解码当然对应又有编码,编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。
2023-03-25 20:24:43
1256
2
原创 Qt音视频开发28-ffmpeg解码本地摄像头(yuv422转yuv420)
一开始用ffmpeg做的是视频流的解析,后面增加了本地视频文件的支持,到后面发现ffmpeg也是支持本地摄像头设备的,只要是原则上打通的比如win系统上相机程序、linux上茄子程序可以正常打开就表示打通,整个解码显示过程完全一样,就是打开的时候要传入设备信息,而且参数那边可以指定分辨率和帧率等,本地摄像机一般会支持多个分辨率,用户需要哪种分辨率都可以指定该分辨率进行采集。
2023-03-24 11:11:25
1413
1
原创 Qt音视频开发27-ffmpeg视频旋转显示
用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以一定要想办法解析到视频的旋转角度,然后根据这个角度重新绘制。在窗体那边也需要调整对应的分辨率,一般都是宽度高度互换。其实早期的很多播放器比如vlc2版本的播放器也是不支持旋转的,从vlc3开始内置会自动给旋转,估计这种场景越来越多,毕竟现在智能手机大行其道,用手机拍摄的视频很多都是竖屏的。
2023-03-22 08:33:39
1015
2
原创 Qt音视频开发26-监控画面各种图形绘制设计
视频监控系统做到后面,逐渐需要搭配人工智能算法,将算法计算后的信息以OSD标签以及方框各种图形的信息显示到视频中,这种当然和OSD一样也是有两种方式,一种是源头就贴好了,一种是将结果发给软件这边解析绘制,于是才需要这种通用的图形绘制需求,有了之前OSD标签信息的经验,这个在最初设计的时候就考虑了很多可能的要素,比如图形的边框大小、边框颜色、背景颜色,区域为了兼容更多的内容,除了矩形,还支持QPainterPath路径集合,多边形区域QList点坐标集合,尤其是QPainterPath路径集合涵盖了所有可能的
2023-03-19 13:55:43
1038
1
原创 Qt音视频开发24-视频显示QOpenGLWidget方式(占用GPU)
采用painter的方式绘制解码后的图片,方式简单易懂,巨大缺点就是占CPU,一个两个通道还好,基本上CPU很低,但是到了16个64个通道的时候,会发现CPU也是很吃紧(当然强劲的电脑配置另当别论),这就需要考虑用opengl来绘制了,采用opengl走的GPU,会占用很少的CPU(一般是部分运算),而且一般ffmpeg采集到的就是yuv数据,可以直接用opengl来绘制,并不需要转成rgb格式的图片,转换也会占用不少的CPU资源。
2023-03-17 08:44:13
1616
4
原创 Qt音视频开发23-视频绘制QPainter方式(占用CPU)
采集到的图片,用painter绘制是最基础的方式,初学者可能第一次尝试显示图片用的qlabel的setpixmap,用下来会发现卡成屎,第二次尝试用样式表设置背景图,依然卡成屎,最终选用painter的方式,直接drawImage函数绘制解析好的图片,可以通过定义一个信号receiveImage,关联该函数绘制即可,通过调用update方法主动触发paintevent事件,在里面按照需要绘制图片,如果是大量频繁的触发update,Qt内部会合并一些绘制,这样可以大大节约CPU资源。
2023-03-12 09:45:01
1289
原创 Qt音视频开发22-音频播放QAudioOutput
以前一直以为只有Qt5以后才有QAudioOutput播放音频,其实从Qt4.6开始就有,在Qt6中变成了QAudioSink,功能一样。用QAudioOutput播放音频pcm数据极其方便,只需要指定音频播放设备(可能电脑上有多个音频输出设备),设置音频数据格式(采样率、通道数量、比特率等)。
2023-03-10 08:34:12
1159
1
Qt编写网络中转服务器(开源)
2018-05-16
Qt仿win7自动顶部最大化左侧右侧半屏效果
2017-04-16
Qt实现的FlatUI样式
2016-12-11
Qt编写可换肤的中文双拼输入法运行截图
2015-03-08
QT编写的可换肤的中文双拼输入法核心类
2015-03-08
QT编写的可换肤的中文双拼输入法可执行文件
2015-03-08
VM6000可执行文件
2014-12-27
VISTA128主机调试工具
2014-11-04
QT自定义精美换肤界面
2014-08-15
QT实现自定义UI-精美标题栏支持最小化最大化关闭鼠标拖动改变大小
2014-07-30
QT编写的简易安防视频监控系统
2014-07-19
QT编写DLL调用示例 方法 参数 返回值 事件回调
2014-05-10
qt+mingw32+windows+ffmpeg+rtsp保证编译可用
2014-05-02
QT编写的邮件发送工具可执行文件
2014-03-12
QT编写的邮件发送工具
2014-03-12
QT编写的串口设备调试工具终极版
2013-12-20
串口设备调试工具
2013-12-20
C#手机号码归属地查询(改编后更经典)
2009-05-26
Qt编写GIF录屏工具
2019-04-05
Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
2019-03-17
Qt编写串口调试工具V2018
2019-03-12
Qt编写软件运行时间记录(开源)
2019-03-10
Qt编写调试日志输出工具带网络转发(开源)
2019-03-10
Qt编写守护进程
2019-03-02
Qt编写密钥生成器+使用demo
2019-02-26
Qt编写可拖动对象+背景地图+多种样式+多种状态
2018-07-04
Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版
2018-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人