• 博客(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编写网络中转服务器(开源)

需求 1:手机端或者其他端可以对设备进行回控,并查看设备各种运行状态,接收报警推送等。 2:同时支持在局域网、广域网、互联网访问,尤其是互联网访问。 3:权限控制,给定账号控制授权的设备,并自动拉取设备信息。 4:设备不在线要给出反馈信息提示以便分析。 5:每个连接都有自己的唯一编号作为标识符。 6:可以方便的拓展为微信接入+小程序接入+web接入。

2018-05-16

Qt编写视频监控画面分割界面

Qt编写视频监控画面分割界面,支持四画面+六画面+八画面+九画面+十六画面,鼠标右键菜单切换。

2018-05-06

QSS样式表之PS黑色风格+白色风格+淡蓝色风格

QSS样式表之高仿PS黑色风格+白色风格+淡蓝色风格,个人最喜爱的淡蓝色风格,相当精美!

2018-05-06

Qt仿win7自动顶部最大化左侧右侧半屏效果

在Qt中,如果是无边框窗体,(有边框窗体和操作系统窗体效果一致)并没有相关的API接口来实现这个效果,必须自己写代码来模拟这个效果,原理很简单,绑定事件过滤器,自动计算当前无边框窗体的位置和鼠标按下去的坐标,当到达顶部或者左侧右侧时,自动设置该窗体的geometry即可。

2017-04-16

Qt实现的FlatUI样式

对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反而没有扁平化来得亲切。 Flat UI是基于Bootstrap之上进行二次开发的扁平化前端框架,他提供了动感、时尚的风格色调搭配,简洁、炫丽的功能组件,同时还提供了更为平滑的js交互动画,可以称得上前端扁平化设计框架的优秀代表之一。 既然是扁平化设计框架的优秀代表,当然需要在自己项目中应用应用,Qt中的qss机制,和css极为相似,感觉就是脱胎于css,用qss来实现Qt界面样式不是一般的方便,而是相当的爽,在看到FlatUI这样的精美的扁平化设计样式后,难以抑制手痒痒,就想用qss实现类似的风格。

2016-12-11

Qt编写可换肤的中文双拼输入法运行截图

Qt编写可换肤的中文双拼输入法 1:各Qt版本(Qt4.6-Qt5.4)、各操作系统(windows、linux、嵌入式linux-ARM)全编译运行通过,界面一致。 2:支持小写、大写、中文三种模式输入,自由切换。 3:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。 4:智能分页算法,可任意翻页查看汉字词组。 5:除了支持鼠标单击软键盘输入外,还支持实体键盘同步输入,代码中有映射处理,对应实体键盘的按键会反应到软键盘处理。 6:七套精美皮肤样式选择,鼠标右键任意换肤。 7:代码优化到极致,包括注释和所有完善性代码处理总共不到500行。 8:除了可以单击软键盘和实体键盘上的数字来选择对应的汉字外,还支持鼠标单击汉字显示处来选择汉字。 9:无边框窗体,可拖动移动。 10:sqlite数据库存储汉字字库,可自由添加自定义的词组。 11:参考实体键盘布局,更逼真。 12:界面布局、字库算法、界面切换100%首创处理,与任何网上的Qt输入法处理方式和布局截然不同。、 13:用法简单极致,只需要在项目中添加输入法界面类(共三个文件frminput.h/frminput.cpp/frminput.ui),然后在main函数中引入头文件#include "frminput.h"后调用frmInput::Instance()->hide();即可。整个工程都可以用。

2015-03-08

QT编写的可换肤的中文双拼输入法核心类

Qt编写可换肤的中文双拼输入法 1:各Qt版本(Qt4.6-Qt5.4)、各操作系统(windows、linux、嵌入式linux-ARM)全编译运行通过,界面一致。 2:支持小写、大写、中文三种模式输入,自由切换。 3:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。 4:智能分页算法,可任意翻页查看汉字词组。 5:除了支持鼠标单击软键盘输入外,还支持实体键盘同步输入,代码中有映射处理,对应实体键盘的按键会反应到软键盘处理。 6:七套精美皮肤样式选择,鼠标右键任意换肤。 7:代码优化到极致,包括注释和所有完善性代码处理总共不到500行。 8:除了可以单击软键盘和实体键盘上的数字来选择对应的汉字外,还支持鼠标单击汉字显示处来选择汉字。 9:无边框窗体,可拖动移动。 10:sqlite数据库存储汉字字库,可自由添加自定义的词组。 11:参考实体键盘布局,更逼真。 12:界面布局、字库算法、界面切换100%首创处理,与任何网上的Qt输入法处理方式和布局截然不同。、 13:用法简单极致,只需要在项目中添加输入法界面类(共三个文件frminput.h/frminput.cpp/frminput.ui),然后在main函数中引入头文件#include "frminput.h"后调用frmInput::Instance()->hide();即可。整个工程都可以用。

2015-03-08

QT编写的可换肤的中文双拼输入法可执行文件

Qt编写可换肤的中文双拼输入法 1:各Qt版本(Qt4.6-Qt5.4)、各操作系统(windows、linux、嵌入式linux-ARM)全编译运行通过,界面一致。 2:支持小写、大写、中文三种模式输入,自由切换。 3:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。 4:智能分页算法,可任意翻页查看汉字词组。 5:除了支持鼠标单击软键盘输入外,还支持实体键盘同步输入,代码中有映射处理,对应实体键盘的按键会反应到软键盘处理。 6:七套精美皮肤样式选择,鼠标右键任意换肤。 7:代码优化到极致,包括注释和所有完善性代码处理总共不到500行。 8:除了可以单击软键盘和实体键盘上的数字来选择对应的汉字外,还支持鼠标单击汉字显示处来选择汉字。 9:无边框窗体,可拖动移动。 10:sqlite数据库存储汉字字库,可自由添加自定义的词组。 11:参考实体键盘布局,更逼真。 12:界面布局、字库算法、界面切换100%首创处理,与任何网上的Qt输入法处理方式和布局截然不同。、 13:用法简单极致,只需要在项目中添加输入法界面类(共三个文件frminput.h/frminput.cpp/frminput.ui),然后在main函数中引入头文件#include "frminput.h"后调用frmInput::Instance()->hide();即可。整个工程都可以用。

2015-03-08

VM6000可执行文件

QT开发之旅五视频监管平台可执行文件,项目需求:某区下面有几百所学校,每个学校都有若干台NVR或者DVR,每台NVR和DVR都挂接着N个IPC(摄像机)(包括网络摄像机和模拟摄像机),现在需要对所有学校的监控进行查看以及回放和轮询,能够对指定学校进行视频监控,对所有学校的视重点部位视频进行查看轮询,可自定义轮询时间等。 开发过程:本着尽量追求简洁的要求,最终编写了如上图的主界面。没有采用QT自带的界面,而是重写了界面,自定义无边框拖动,自由换肤,全部采用QSS控制,本人从官网http://qt-project.org/doc/qt-4.8/stylesheet-examples.html彻底学习了下QSS的规则,整理了一套通用的换肤方案。

2014-12-27

VISTA128主机调试工具

VISTA128主机调试工具,通过串口与主机通信,可以识别主机布防撤防/防区故障恢复旁路等状态信息,调试可以通过串口回控主机进行布防撤防操作.本工具在官方软件上破解协议编写而成.

2014-11-04

QT自定义精美换肤界面

陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望。 特点: 1:无边框窗体,自定义标题栏,鼠标拖动,大小缩放,双击切换。 2:除了少量的几个图片资源外,几乎使用QSS写完所有颜色样式控制。 3:自定义一个QMessageBox对话框,自动换行显示提示信息,可以很方便的调用。 4:使用fontawesome图形字体库,将互联网的优秀资源应用于QT中。 5:彻底公开源码,可以任意随意使用。 6:QT各个版本都可以编译通过,亲测无误。 7:自带提供了四种样式黑色、蓝色、灰色、天蓝色风格供选择,可以自由更改image文件夹下的样式,也可以自己增加一些样式。

2014-08-15

QT实现自定义UI-精美标题栏支持最小化最大化关闭鼠标拖动改变大小

1:真正意义上的无边框自定义标题栏,支持最小化最大化关闭,支持标题栏双击实现,支持鼠标拖动,支持鼠标在边框处拖动改变窗体大小,网络上的绝大部分都是扯蛋,要么不支持鼠标改变界面大小,要么鼠标移到其它按钮界面瞬间移动等各种不理想状态。 2:无任何资源文件,纯QSS实现精美标题栏及自定义按钮样式,可以稍作修改增加更多的样式,QSS真是太强大了! 3:使用fontawesome-webfont.ttf字体文件实现最小化最大化关闭等按钮文字,图形文字,很好很强大! 4:提供16种各类曲线啥线的绘制,只需点击一下按钮即可切换观看效果! 5:主窗体界面与功能界面分离,注释两行代码即可。 6:代码最精简,可免费用于任何项目! 7:感谢网络上各种共享资源。

2014-07-30

QT编写的简易安防视频监控系统

说明: 1:此示例只是用来显示视频流 并没有处理存储视频及回放视频功能 2:在打开项目后务必将构建里面的影子构建 Shadow build 取消 3:实时显示视频 视频响应速度比VLC QTAV等播放器快很多倍 4:精简代码 在windows下是可以完整编译通过并运行的 linux下要将对应ffmpeg库文件替换 5:代码处理并不够完整 还有很多需要优化的地方 6:代码注释不够详尽 但是简单易懂 7:没有使用定时器 采用信号槽机制实现视频流播放 8:处理全部放在QFFmpge类中 包括注释也才到100行代码左右 9:使用示例简单方便 自带了一个珍藏多年的黑灰色主题样式表 锦上添花 10:窗体加载时动画渐显效果 11:同时支持两路RTSP视频流播放 代码稍作修改即可16路同时显示 12:1画面到16画面模式自由切换 13:自定义按钮标签样式表应用 14:自定义标题栏和不规则窗体的实现 真正意义上实现了鼠标拖动 不仅仅是拖动标题栏才能动 15:QT4与QT5均可编译通过 亲测无误 ">说明: 1:此示例只是用来显示视频流 并没有处理存储视频及回放视频功能 2:在打开项目后务必将构建里面的影子构建 Shadow build 取消 3:实时显示视频 视频响应速度比VLC QTAV等播放器快很多倍 4:精简代码 在windows下是可以完整编译 [更多]

2014-07-19

镜头焦距计算工具VB源码

镜头焦距计算工具VB源码,简单,值得学习!

2014-05-19

镜头/硬盘测算工具

镜头/硬盘测算工具,根据物宽物高和物距计算镜头大小,根据码流计算硬盘存储大小

2014-05-19

QT编写DLL调用示例 方法 参数 返回值 事件回调

QT编写DLL给外部程序调用示例 方法 参数 返回值 事件回调 : 1:C#或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际DLL中函数名及参数一致; [DllImport "qtdll dll" ] public static extern int add int i ; 第三步:调用函数执行; Console WriteLine add 10 ToString ; 2:QT 第一步:引入头文件; #include <QLibrary> 第二步:定义函数指针 以备调用; typedef int Add int ; 第三步:载入DLL 调用函数执行; QLibrary lib "qtdll dll" ; lib load ; Add add Add lib resolve "add" ; add 50 ; 3:C或C++ 第一步:引入头文件; #include <windows h> 第二步:定义函数指针; typedef int Add int ; 第三步:载入DLL 调用函数执行; HINSTANCE hDll LoadLibrary "qtdll dll" ; 载入DLL获取句柄 if hDll NULL { Add add Add GetProcAddress hDll "add" ; 获取函数地址 printf "%d" add 110 ; FreeLibrary hDll ; 释放DLL }">QT编写DLL给外部程序调用示例 方法 参数 返回值 事件回调 : 1:C#或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际DLL中函数名及参数一致; [DllImport "qtdll dll" ] public static extern int add in [更多]

2014-05-10

qt+mingw32+windows+ffmpeg+rtsp保证编译可用

1:此示例只是用来显示视频流,并没有处理存储视频及回放视频功能. 2:在打开项目后务必将构建里面的影子构建(Shadow build)取消. 3:实时显示视频,视频响应速度比VLC,QTAV等播放器快很多倍. 4:精简代码,在windows下是可以完整编译通过并运行的.linux下要将对应ffmpeg库文件替换. 5:支持三通道同步显示一个视频流,可以单击截图按钮截图放在最后一个通道. 6: 支持单个通道双击最大化显示. 7:代码处理并不够完整,还有很多需要优化的地方.

2014-05-02

QT c++ 编写的DS7400主机调试工具

开发环境:qt 语言:c++ 功能:实现了ds7400主机的布防撤防报警旁路等信号的识别。

2014-04-07

QT C++ 编写的VISTA报警主机调试工具

开发环境:QT 语言:c++ 功能:实现了对VISTA系列报警主机的布防撤防虚拟键盘控制,并能识别各种布防撤防防区报警信号。

2014-04-07

DS7400报警主机调试工具

可以接收DS7400主机的布防撤防报警信号,识别电池低压低等故障信息。

2014-04-07

VISTA报警主机调试工具

很好用的VISTA系列报警主机调试工具,支持回控主机,实时显示主机状态等。

2014-04-07

QT编写的邮件发送工具可执行文件

项目名称:邮件发送工具 开发环境:XP+QT4.7+QT CREATOR2.8+MINGW 已编译通过测试平台:XP、Win7、ubuntu、tiny210、TE6410 技术实现:通过socket通信实现smtp协议,根据应答解析协议并作出处理发送邮件 基本功能: 1:支持主流邮箱例如163邮箱QQ邮箱的发送。 2:支持富文本发送,可以发送带有HTML格式的文本。 3:支持多个附件发送,附件可以是图片。

2014-03-12

QT编写的邮件发送工具

项目名称:邮件发送工具 开发环境:XP+QT4.7+QT CREATOR2.8+MINGW 已编译通过测试平台:XP、Win7、ubuntu、tiny210、TE6410 技术实现:通过socket通信实现smtp协议,根据应答解析协议并作出处理发送邮件 基本功能: 1:支持主流邮箱例如163邮箱QQ邮箱的发送。 2:支持富文本发送,可以发送带有HTML格式的文本。 3:支持多个附件发送,附件可以是图片。

2014-03-12

QT编写的串口设备调试工具终极版

开发环境:WIN7+QT4.7+QT CREATOR2.8+MINGW 已编译通过测试平台:XP、Win7、ubuntu、tiny210 技术实现:通过第三方串口通信类,解析协议并作出处理 基本功能: 1:支持16进制数据发送与接收。 2:支持windows下COM9以上的串口通信。 3:自动加载对应操作系统串口号。 4:实时显示收发数据字节大小以及串口状态。 高级功能: 1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。 2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。 3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。 4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。 5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。 6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。

2013-12-20

串口设备调试工具

基本功能: 1:支持16进制数据发送与接收。 2:支持windows下COM9以上的串口通信。 3:自动加载对应操作系统串口号。 4:实时显示收发数据字节大小以及串口状态。 高级功能: 1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。 2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。 3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。 4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。 5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。

2013-12-20

QT编写的TCP调试工具

ASCII格式和16进制数据收发,支持多个客户端收发消息,可以指定客户端发送消息,动态增加和移除已连接客户端。

2013-12-15

TCP调试工具

TCP调试工具,ASCII格式和16进制数据收发,支持多个客户端收发消息,可以指定客户端发送消息,动态增加和移除已连接客户端。

2013-12-15

QT编写的DS7400主机调试工具

QT编写的DS7400主机调试工具,串口通信,同时附带一个自定义的报警按钮控件,可以自由显示当前防区状态,已用于多个商业项目!

2013-12-13

DS7400主机调试工具

DS7400主机调试工具,可以用来与DS7400主机通信,能够识别主机布防撤防,防区报警,防区旁路,防区断开故障等情况。无需安装任何框架,绿色版。

2013-12-13

C#手机号码归属地查询(改编后更经典)

C#手机号码归属地查询,参照了网络上面的好多代码综合制作而成,在WINFORM界面上面可以实现两种方式的手机号码归属地查询,包括本地查询和网络查询。

2009-05-26

Qt编写GIF录屏工具

在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持gif动图,一般一个5秒左右的gif,800*600分辨率,可以很好的控制在500KB内,这样就比较完美的支持各大网站上传动图。 最开始使用的是ScreenGif.exe,用了很久,感觉还可以,后面一个朋友推荐用LICEcap.exe,体积更小,压缩比更高,再到后来发现有个gif.h开源的类,调用其中的方法可以实现将多张图片合并到一张gif中去,而且还是跨平台的,本人亲自在WIN+UBUNTU测试成功。 最初的代码是倪大侠给的,我在此基础上重新完善了下,使得可以直接拖动窗体大小来改变录屏区域的大小。 完整源码下载: 1:可设置要录制屏幕的宽高,支持右下角直接拉动改变. 2:可设置变宽的宽度 3:可设置录屏控件的背景颜色 4:可设置录制的帧数 5:录制区域可自由拖动选择

2019-04-05

Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)

Qt编写echart仪表盘JS交互程序,同时支持webkit和webengine。编译完成后记得将源码下file文件夹下的所有文件复制到可执行文件同一目录即可。

2019-03-17

Qt编写串口调试工具V2018

基本功能: 1:支持16进制数据发送与接收。 2:支持windows下COM9以上的串口通信。 3:实时显示收发数据字节大小以及串口状态。 4:支持任意qt版本,亲测4.7.0 4.8.5 4.8.7 5.4.1 5.7.0 5.8.0。 5:支持串口转网络数据收发。 高级功能: 1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。 2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。 3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。 4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。 5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。 6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。

2019-03-12

Qt编写软件运行时间记录(开源)

在早期开发的软件中,尤其是初学者入门者写的软件,软件运行久了,难免遇到意外崩溃的时候,可是大部分的运行设备可能在现场客户那,需要记住每一次从软件启动后到软件意外关闭前的运行时间,需要记录的信息包括:编号+开始时间+结束时间+已运行时间,每次完整的运行过程只产生一条记录,每次运行时间改变以后更新当前这条记录即可。这样就可以确切的了解到软件在现场的真实运行情况是否糟糕,如果没有这个记录(当然可以选择记录存储到数据库),程序又重启恢复了,也不知道到底每次运行了多久,从几点到几点。

2019-03-10

Qt编写调试日志输出工具带网络转发(开源)

用qt开发商业程序已经九年了,陆陆续续开发过至少几十个程序,除了一些算不算项目的小工具外,大部分的程序都需要有个日志的输出功能,希望可以将程序的运行状态存储到文本文件或者数据库或者做其他处理等,qt对这个日志输出也做了很好的封装,在Qt4是qInstallMsgHandler,Qt5里边是qInstallMessageHandler,有了这个神器,只要在你的项目中所有qdebug qinfo等输出的日志信息,都会重定向接收到,网上大部分人写的demo都是接收到输出打印日志存储到文本文件,其实这就带给很多人误解,容易产生以为日志只能输出到文本文件,其实安装了日志钩子以后,拿到了所有调试打印信息,你完全可以用来存储到数据库+html有颜色区分格式的文件+网络转发输出(尤其适用于嵌入式linux无界面程序,现场不方便外接调试打印的设备)。 做过的这么多项目中,Qt4和Qt5的都有,我一般保留四个版本,4.8.7,为了兼容qt4, 5.7.0,最后的支持XP的版本, 最新的长期支持版本5.9.7 最高的新版本5.12。毫无疑问,我要封装的这个日志类,也要支持4+5的,而且提供友好的接口。 1:支持动态启动和停止。 2:支持日志存储的目录。 3:支持网络发出打印日志。 4:支持Qt4+Qt5。开箱即用。 5:支持多线程。

2019-03-10

Qt编写守护进程

没有任何人敢保证自己写的程序没有任何BUG,尤其是在商业项目中,程序量越大,复杂度越高,出错的概率越大,尤其是现场环境千差万别,和当初本地电脑测试环境很可能不一样,有很多特殊情况没有考虑到,如果需要保证程序7*24小时运行,则需要想一些办法能够让程序死了能够活过来,在嵌入式linux上,大部分会采用看门狗的形式来处理,程序打开看门狗驱动后,定时喂狗,一旦超过规定的时间,则硬件软复位等。这种方式相对来说比较可靠,如果需要在普通PC机上运行怎办呢?本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,特意提炼出来共性,增加了多种设置。 1:可设置检测的程序名称。 2:可设置udp通信端口。 3:可设置超时次数。 4:自动记录已重启次数。 5:自动记录最后一次重启时间。 6:是否需要重新刷新桌面。 7:可重置当前重启次数和最后重启时间。 8:自动隐藏的托盘运行或者后台运行。 9:提供界面设置程序名称已经开启和暂停服务。

2019-03-02

Qt编写密钥生成器+使用demo

在很多商业软件中,需要提供一些可以试运行的版本,这样就需要配套密钥机制来控制,纵观大部分的试用版软件,基本上采用以下几种机制来控制。 1:远程联网激活,每次启动都联网查看使用时间等,这种方法最完美,缺点是没法联网的设备就歇菜了。 2:通过获取本地的硬盘+CPU等硬件的编号,做一个运算,生成一个激活码,超过半数的软件会采用此方法,缺点是不能自由控制软件的其他参数,比如软件中添加的设备数量的控制。 3:设定一个运行到期时间+数量限制+已运行时间的密钥文件,发给用户配套软件使用,缺点是如果仅仅设置的是运行到期时间,用户可以更改电脑时间来获取更长的使用时间,在电脑不联网的情况下。 本demo采用抛砖引玉的形式,用第三种方法来实现,密钥文件采用最简单的异或加密,可以自行改成其他加密方法。

2019-02-26

Qt编写的数据库分页demo

Qt编写的数据库分页demo,支持上一页下一页第一页末一页切换,实时显示当前页信息,支持千万级数据量。

2018-09-08

Qt编写可拖动对象+背景地图+多种样式+多种状态

在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,为此特意编写本控件,全部开源出来,欢迎大家提建议。

2018-07-04

Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版

时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了。这次真的打死也不再改版了。 旧版本1:http://www.qtcn.org/bbs/read-htm-tid-55540.html 旧版本2:http://www.qtcn.org/bbs/read-htm-tid-62636.html 基本功能: 1:16进制数据和ASCII数据收发。 2:定时器自动发送。 3:自动从配置文件加载最后一次的界面设置。 4:自动从配置文件加载数据发送下拉框的数据。可以将经常使用的数据填写在send.txt中。 5:可启用设备模拟回复,当收到某个数据时,模拟设备自动回复数据。对应数据格式填写在device.txt中。 6:可对单个在线连接发送数据,也可勾选全部进行发送。 7:支持多个客户端连接并发。 8:采用单线程。 9:四种模式,tcp服务器、tcp客户端、udp服务器、udp客户端。

2018-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除