├── LICENSE ├── README.md ├── lightbutton ├── frmlightbutton.cpp ├── frmlightbutton.h ├── frmlightbutton.ui ├── lightbutton.cpp ├── lightbutton.h ├── lightbutton.pro └── main.cpp ├── snap_android_demo ├── android_demo.jpg ├── android_demo0.jpg ├── android_demo1.jpg ├── android_demo2.jpg ├── android_demo4.jpg ├── android_demo5.jpg ├── android_demoh.jpg ├── android_demoh1.jpg └── android_demoh2.jpg ├── snap_audio_demo ├── audio_demo1.jpg ├── audio_demo2.jpg ├── audio_demo3.jpg ├── audio_demo4.jpg └── audio_demo_android.jpg ├── snap_customplot ├── 5-4-1.jpg ├── 5-4-10.jpg ├── 5-4-11.jpg ├── 5-4-12.jpg ├── 5-4-2.jpg ├── 5-4-3.jpg ├── 5-4-4.jpg ├── 5-4-5.jpg ├── 5-4-6.jpg ├── 5-4-7.jpg ├── 5-4-8.jpg ├── 5-4-9.jpg └── customplot.gif ├── snap_dataout ├── dataout.gif ├── dataout1.gif ├── dataout1.jpg ├── dataout2.gif ├── dataout2.jpg ├── dataout3.gif ├── dataout3.jpg ├── dataout4.gif ├── dataout4.jpg ├── dataout5.gif ├── dataout5.jpg ├── dataout6.gif ├── dataout6.jpg ├── dataout7.gif ├── dataout7.jpg ├── dataout8.gif ├── dataout8.jpg └── readme.md ├── snap_dbdelegate ├── dbdelegate.gif └── dbdelegate.png ├── snap_dbtool ├── dbtool.gif ├── dbtool1.gif ├── dbtool1.jpg ├── dbtool2.gif ├── dbtool2.jpg ├── dbtool3.gif ├── dbtool3.jpg ├── dbtool4.gif ├── dbtool4.jpg ├── dbtool5.gif ├── dbtool5.jpg ├── dbtool6.gif ├── dbtool6.jpg ├── dbtool7.gif ├── dbtool7.jpg ├── dbtool8.gif └── dbtool8.jpg ├── snap_hard ├── hard.gif ├── hard_idcard.jpg ├── hard_msgmodel.jpg └── hard_posprint.jpg ├── snap_httpserver ├── httpserver.gif ├── httpserver1.gif ├── httpserver2.gif ├── json数据.png ├── 大屏请求.png ├── 手机效果1.jpg ├── 手机效果2.jpg ├── 整体.png ├── 网页内容.png ├── 表格数据.jpg └── 配色方案.jpg ├── snap_input ├── QQ截图20231209110521.jpg ├── QQ截图20231209110534.jpg ├── QQ截图20231209110657.jpg ├── QQ截图20231209110751.jpg ├── QQ截图20231209110819.jpg ├── QQ截图20231209110908.jpg ├── QQ截图20231209110932.jpg ├── input2018.jpg ├── input2019.gif └── input2019.jpg ├── snap_iottool ├── readme.md └── snap │ ├── iot_com.jpg │ ├── iot_mqtt.jpg │ ├── iot_server1.jpg │ ├── iot_server2.jpg │ ├── iot_tcp.jpg │ ├── iot_udp.jpg │ ├── iot_web.jpg │ ├── iotsystem_linux.jpg │ ├── iotsystem_wasm.jpg │ ├── iotsystem_win.jpg │ └── iottool_modbusslave.jpg ├── snap_key ├── keydemo.jpg ├── keyserver.jpg └── keytool.jpg ├── snap_map ├── readme.md └── snap │ ├── Qt目录中webengine脚本文件位置.jpg │ ├── app.jpg │ ├── map100.jpg │ ├── map1000.jpg │ ├── map101.jpg │ ├── map102.jpg │ ├── map200.jpg │ ├── map201.jpg │ ├── map202.jpg │ ├── map203.jpg │ ├── map204.jpg │ ├── map205.jpg │ ├── map206.jpg │ ├── map207.jpg │ ├── map208.jpg │ ├── map300.jpg │ ├── map301.jpg │ ├── map400.jpg │ ├── map401.jpg │ ├── map500.jpg │ ├── map600.jpg │ ├── map601.jpg │ ├── map700.jpg │ ├── map701.jpg │ ├── map800.jpg │ ├── map801.jpg │ ├── map802.jpg │ ├── map803.jpg │ ├── map900.jpg │ ├── path_tiles.jpg │ ├── path_tiles_hybrid.jpg │ ├── path_tiles_self.jpg │ ├── path_tiles_self1.jpg │ ├── 天地图后台配置.jpg │ └── 百度地图后台配置.jpg ├── snap_property ├── code_property.png ├── property.jpg ├── property1.png ├── property2.png ├── property3.png ├── 串口采集.gif ├── 加载属性.gif ├── 加载插件.gif ├── 动态属性.gif ├── 完整视频.gif ├── 导入xml.gif ├── 导出xml.gif ├── 属性中文.gif ├── 拉伸控件.gif ├── 拖曳控件.gif ├── 数据库采集.gif ├── 用户属性.gif └── 网络采集.gif ├── snap_quc ├── 000.gif ├── 3-1-1.jpg ├── 3-1-10.jpg ├── 3-1-11.jpg ├── 3-1-12.jpg ├── 3-1-13.jpg ├── 3-1-14.jpg ├── 3-1-15.jpg ├── 3-1-16.jpg ├── 3-1-17.jpg ├── 3-1-18.jpg ├── 3-1-19.jpg ├── 3-1-2.jpg ├── 3-1-20.jpg ├── 3-1-21.jpg ├── 3-1-22.jpg ├── 3-1-23.jpg ├── 3-1-24.jpg ├── 3-1-3.jpg ├── 3-1-4.jpg ├── 3-1-5.jpg ├── 3-1-6.jpg ├── 3-1-7.jpg ├── 3-1-8.jpg ├── 3-1-9.jpg ├── 3-10-1.jpg ├── 3-10-2.jpg ├── 3-10-3.jpg ├── 3-10-4.jpg ├── 3-10-5.jpg ├── 3-10-6.jpg ├── 3-10-7.jpg ├── 3-11-1.jpg ├── 3-11-10.jpg ├── 3-11-11.jpg ├── 3-11-12.jpg ├── 3-11-2.jpg ├── 3-11-3.jpg ├── 3-11-4.jpg ├── 3-11-5.jpg ├── 3-11-6.jpg ├── 3-11-7.jpg ├── 3-11-8.jpg ├── 3-11-9.jpg ├── 3-12-1.jpg ├── 3-12-10.jpg ├── 3-12-11.jpg ├── 3-12-12.jpg ├── 3-12-13.jpg ├── 3-12-14.jpg ├── 3-12-15.jpg ├── 3-12-16.jpg ├── 3-12-17.jpg ├── 3-12-2.jpg ├── 3-12-3.jpg ├── 3-12-4.jpg ├── 3-12-5.jpg ├── 3-12-6.jpg ├── 3-12-7.jpg ├── 3-12-8.jpg ├── 3-12-9.jpg ├── 3-13-1.jpg ├── 3-13-2.jpg ├── 3-13-3.jpg ├── 3-13-4.jpg ├── 3-14-1.jpg ├── 3-14-2.jpg ├── 3-14-3.jpg ├── 3-14-4.jpg ├── 3-14-5.jpg ├── 3-14-6.jpg ├── 3-14-7.jpg ├── 3-14-8.jpg ├── 3-14-9.jpg ├── 3-15-1.jpg ├── 3-15-2.jpg ├── 3-15-3.jpg ├── 3-15-4.jpg ├── 3-15-5.jpg ├── 3-15-6.jpg ├── 3-15-7.jpg ├── 3-16-1.jpg ├── 3-16-2.jpg ├── 3-16-3.jpg ├── 3-16-4.jpg ├── 3-16-5.jpg ├── 3-16-6.jpg ├── 3-16-7.jpg ├── 3-16-8.jpg ├── 3-17-1.jpg ├── 3-17-2.jpg ├── 3-17-3.jpg ├── 3-17-4.jpg ├── 3-17-5.jpg ├── 3-17-6.jpg ├── 3-17-7.jpg ├── 3-18-1.jpg ├── 3-18-10.jpg ├── 3-18-11.jpg ├── 3-18-12.jpg ├── 3-18-2.jpg ├── 3-18-3.jpg ├── 3-18-4.jpg ├── 3-18-5.jpg ├── 3-18-6.jpg ├── 3-18-7.jpg ├── 3-18-8.jpg ├── 3-18-9.jpg ├── 3-19-1.jpg ├── 3-19-2.jpg ├── 3-19-3.jpg ├── 3-19-4.jpg ├── 3-19-5.jpg ├── 3-19-6.jpg ├── 3-19-7.jpg ├── 3-19-8.jpg ├── 3-2-1.jpg ├── 3-2-10.jpg ├── 3-2-11.jpg ├── 3-2-12.jpg ├── 3-2-2.jpg ├── 3-2-3.jpg ├── 3-2-4.jpg ├── 3-2-5.jpg ├── 3-2-6.jpg ├── 3-2-7.jpg ├── 3-2-8.jpg ├── 3-2-9.jpg ├── 3-20-1.jpg ├── 3-20-2.jpg ├── 3-20-3.jpg ├── 3-20-4.jpg ├── 3-20-5.jpg ├── 3-3-1.jpg ├── 3-3-10.jpg ├── 3-3-11.jpg ├── 3-3-12.jpg ├── 3-3-13.jpg ├── 3-3-14.jpg ├── 3-3-15.jpg ├── 3-3-16.jpg ├── 3-3-17.jpg ├── 3-3-18.jpg ├── 3-3-2.jpg ├── 3-3-3.jpg ├── 3-3-4.jpg ├── 3-3-5.jpg ├── 3-3-6.jpg ├── 3-3-7.jpg ├── 3-3-8.jpg ├── 3-3-9.jpg ├── 3-4-1.jpg ├── 3-4-10.jpg ├── 3-4-11.jpg ├── 3-4-2.jpg ├── 3-4-3.jpg ├── 3-4-4.jpg ├── 3-4-5.jpg ├── 3-4-6.jpg ├── 3-4-7.jpg ├── 3-4-8.jpg ├── 3-4-9.jpg ├── 3-5-1.jpg ├── 3-5-10.jpg ├── 3-5-2.jpg ├── 3-5-3.jpg ├── 3-5-4.jpg ├── 3-5-5.jpg ├── 3-5-6.jpg ├── 3-5-7.jpg ├── 3-5-8.jpg ├── 3-5-9.jpg ├── 3-6-1.jpg ├── 3-6-2.jpg ├── 3-6-3.jpg ├── 3-6-4.jpg ├── 3-6-5.jpg ├── 3-6-6.jpg ├── 3-6-7.jpg ├── 3-7-1.jpg ├── 3-7-2.jpg ├── 3-7-3.jpg ├── 3-7-4.jpg ├── 3-7-5.jpg ├── 3-7-6.jpg ├── 3-7-7.jpg ├── 3-8-1.jpg ├── 3-8-2.jpg ├── 3-8-3.jpg ├── 3-9-1.jpg ├── 3-9-2.jpg ├── 4-1-1.jpg ├── 4-10-1.jpg ├── 4-10-2.jpg ├── 4-10-3.jpg ├── 4-10-4.jpg ├── 4-10-5.jpg ├── 4-10-6.jpg ├── 4-10-7.jpg ├── 4-2-1.jpg ├── 4-2-2.jpg ├── 4-3-1.jpg ├── 4-3-2.jpg ├── 4-3-3.jpg ├── 4-4-1.jpg ├── 4-5-1.jpg ├── 4-6-1.jpg ├── 4-6-2.jpg ├── 4-7-1.jpg ├── 4-8-1.jpg ├── 4-8-2.jpg └── 4-9-1.jpg ├── snap_tcpfile ├── tcpfile.gif └── tcpfile.png ├── snap_uidemo ├── 1_code0.png ├── 1_code1.png ├── qui.gif ├── quicreator.gif ├── quicreator.png ├── quidemo.gif ├── quistyle.gif ├── uidemo1.png ├── uidemo10.png ├── uidemo11.png ├── uidemo12.png ├── uidemo13.gif ├── uidemo14.png ├── uidemo15.png ├── uidemo16.png ├── uidemo17.png ├── uidemo18.png ├── uidemo19.png ├── uidemo2.png ├── uidemo20.png ├── uidemo21.png ├── uidemo22.png ├── uidemo23.png ├── uidemo24.png ├── uidemo25.gif ├── uidemo25.png ├── uidemo26.gif ├── uidemo26.png ├── uidemo3.png ├── uidemo4.png ├── uidemo6.png ├── uidemo7.png ├── uidemo8.png └── uidemo9.png ├── snap_video_call ├── video_call.jpg ├── video_call_aa.jpg ├── video_call_ab.jpg ├── video_call_linux.jpg ├── video_call_linux_audio.jpg ├── video_call_screen.jpg ├── video_call_vlc.jpg └── video_call_web.jpg ├── snap_video_camera ├── readme.md ├── video_camera1.jpg ├── video_camera2.jpg ├── video_camera3.jpg ├── video_camera4.jpg ├── video_camera5.jpg └── video_camera6.jpg ├── snap_video_demo ├── readme.md ├── video_demo1.jpg ├── video_demo2.jpg ├── video_demo3.jpg ├── video_demo4.jpg ├── video_demo5.jpg ├── video_demo6.jpg ├── video_demo7.jpg ├── video_demo_android1.jpg ├── video_demo_android2.jpg ├── video_demo_android3.jpg ├── video_demo_android4.jpg ├── 大华16通道主码流共享解码_大华客户端.jpg ├── 大华16通道主码流共享解码_本软件.jpg ├── 大华单通道主码流对比.jpg ├── 大华客户端开启硬解码.jpg ├── 本软件4通道子码流不共享解码.jpg ├── 本软件4通道子码流共享解码.jpg ├── 本软件64通道子码流共享解码.jpg ├── 测试电脑配置.jpg ├── 海康16通道主码流共享解码_本软件.jpg ├── 海康16通道主码流共享解码_海康客户端.jpg ├── 海康单通道主码流对比.jpg ├── 海康客户端开启硬解码.jpg ├── 视频4K不开硬解码.jpg ├── 视频4K开启d3d11va硬解码.jpg ├── 视频4K开启dxva2硬解码.jpg ├── 视频录制结果.jpg └── 视频录制菜单.jpg ├── snap_video_face ├── QQ截图20180905095651.png ├── QQ截图20180905095723.png ├── QQ截图20200504195214.jpg ├── QQ截图20200504195249.jpg ├── QQ截图20200504195311.jpg ├── QQ截图20200504195330.jpg ├── QQ截图20200504195355.jpg ├── video_face1.gif ├── video_face2.gif ├── video_face4.gif ├── video_face5.gif ├── video_face5.jpg └── video_face6.gif ├── snap_video_gb28181 ├── video_gb28181_1.jpg ├── video_gb28181_2.jpg ├── video_gb28181_3.jpg ├── video_gb28181_4.jpg ├── video_gb28181_5.jpg ├── video_gb28181_6.jpg ├── video_gb28181_device.jpg ├── video_gb28181_dhipc.jpg ├── video_gb28181_dhnvr.jpg ├── video_gb28181_hkipc.jpg ├── video_gb28181_hknvr.jpg ├── video_gb28181_hwipc.jpg └── video_gb28181_ysnvr.jpg ├── snap_video_image ├── video_image.jpg ├── video_image1.gif ├── video_image2.gif └── video_image_wasm.png ├── snap_video_onvif ├── video_onvif0.jpg ├── video_onvif1.jpg ├── video_onvif2.jpg ├── video_onvif3.jpg ├── video_onvif4.jpg ├── video_onvif_app1.jpg ├── video_onvif_app2.jpg ├── video_onvif_app3.jpg └── video_onvif_app4.jpg ├── snap_video_push ├── video_push_config.jpg ├── video_push_device.jpg ├── video_push_file.jpg ├── video_push_net.jpg └── video_push_preview.jpg ├── snap_web ├── snap_android.jpg ├── snap_bigscreen_base.png ├── snap_chrom1.jpg ├── snap_chrom2.jpg ├── snap_demo1.gif ├── snap_demo2.gif ├── snap_demo3.gif ├── snap_edge1.jpg ├── snap_edge2.jpg ├── snap_firefox1.jpg ├── snap_uidemo24.jpg ├── snap_uidemo25.jpg └── snap_uidemo26.jpg └── snap_yutian ├── audiorecord.gif ├── install1.gif ├── install2.gif ├── install3.gif ├── pay1.png ├── pay2.png ├── pdfreader1.gif ├── pdfreader2.gif ├── pdfreader3.gif ├── radar1.gif ├── radar10.png ├── radar2.gif ├── radar3.gif ├── radar4.gif ├── radar5.gif ├── radar6.gif ├── radar7.gif ├── radar8.gif └── radar9.png /LICENSE: -------------------------------------------------------------------------------- 1 | 木兰宽松许可证, 第1版 2 | 3 | 木兰宽松许可证, 第1版 4 | 2019年8月 http://license.coscl.org.cn/MulanPSL 5 | 6 | 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第1版(“本许可证”)的如下条款的约束: 7 | 8 | 0. 定义 9 | 10 | “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 11 | 12 | “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 13 | 14 | “法人实体”是指提交贡献的机构及其“关联实体”。 15 | 16 | “关联实体”是指,对“本许可证”下的一方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 17 | 18 | “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 19 | 20 | 1. 授予版权许可 21 | 22 | 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 23 | 24 | 2. 授予专利许可 25 | 26 | 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括仅因您或他人修改“贡献”或其他结合而将必然会侵犯到的专利权利要求。如您或您的“关联实体”直接或间接地(包括通过代理、专利被许可人或受让人),就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 27 | 28 | 3. 无商标许可 29 | 30 | “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 31 | 32 | 4. 分发限制 33 | 34 | 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 35 | 36 | 5. 免责声明与责任限制 37 | 38 | “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 39 | 40 | 条款结束。 41 | 42 | 如何将木兰宽松许可证,第1版,应用到您的软件 43 | 44 | 如果您希望将木兰宽松许可证,第1版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 45 | 46 | 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; 47 | 48 | 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; 49 | 50 | 3, 请将如下声明文本放入每个源文件的头部注释中。 51 | 52 | Copyright (c) [2019] [name of copyright holder] 53 | [Software Name] is licensed under the Mulan PSL v1. 54 | You can use this software according to the terms and conditions of the Mulan PSL v1. 55 | You may obtain a copy of Mulan PSL v1 at: 56 | http://license.coscl.org.cn/MulanPSL 57 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 58 | IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 59 | PURPOSE. 60 | See the Mulan PSL v1 for more details. 61 | 62 | 63 | Mulan Permissive Software License,Version 1 64 | 65 | Mulan Permissive Software License,Version 1 (Mulan PSL v1) 66 | August 2019 http://license.coscl.org.cn/MulanPSL 67 | 68 | Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v1 (this License) with following terms and conditions: 69 | 70 | 0. Definition 71 | 72 | Software means the program and related documents which are comprised of those Contribution and licensed under this License. 73 | 74 | Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. 75 | 76 | Legal Entity means the entity making a Contribution and all its Affiliates. 77 | 78 | Affiliates means entities that control, or are controlled by, or are under common control with a party to this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 79 | 80 | Contribution means the copyrightable work licensed by a particular Contributor under this License. 81 | 82 | 1. Grant of Copyright License 83 | 84 | Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. 85 | 86 | 2. Grant of Patent License 87 | 88 | Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed, excluding of any patent claims solely be infringed by your or others’ modification or other combinations. If you or your Affiliates directly or indirectly (including through an agent, patent licensee or assignee), institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 89 | 90 | 3. No Trademark License 91 | 92 | No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in section 4. 93 | 94 | 4. Distribution Restriction 95 | 96 | You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. 97 | 98 | 5. Disclaimer of Warranty and Limitation of Liability 99 | 100 | The Software and Contribution in it are provided without warranties of any kind, either express or implied. In no event shall any Contributor or copyright holder be liable to you for any damages, including, but not limited to any direct, or indirect, special or consequential damages arising from your use or inability to use the Software or the Contribution in it, no matter how it’s caused or based on which legal theory, even if advised of the possibility of such damages. 101 | 102 | End of the Terms and Conditions 103 | 104 | How to apply the Mulan Permissive Software License,Version 1 (Mulan PSL v1) to your software 105 | 106 | To apply the Mulan PSL v1 to your work, for easy identification by recipients, you are suggested to complete following three steps: 107 | 108 | i. Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; 109 | ii. Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; 110 | iii. Attach the statement to the appropriate annotated syntax at the beginning of each source file. 111 | 112 | Copyright (c) [2019] [name of copyright holder] 113 | [Software Name] is licensed under the Mulan PSL v1. 114 | You can use this software according to the terms and conditions of the Mulan PSL v1. 115 | You may obtain a copy of Mulan PSL v1 at: 116 | http://license.coscl.org.cn/MulanPSL 117 | THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 118 | IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 119 | PURPOSE. 120 | 121 | See the Mulan PSL v1 for more details. 122 | -------------------------------------------------------------------------------- /lightbutton/frmlightbutton.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | 3 | #include "frmlightbutton.h" 4 | #include "ui_frmlightbutton.h" 5 | #include "qdatetime.h" 6 | #include "qtimer.h" 7 | 8 | frmLightButton::frmLightButton(QWidget *parent) : QWidget(parent), ui(new Ui::frmLightButton) 9 | { 10 | ui->setupUi(this); 11 | this->initForm(); 12 | } 13 | 14 | frmLightButton::~frmLightButton() 15 | { 16 | delete ui; 17 | } 18 | 19 | void frmLightButton::initForm() 20 | { 21 | ui->lightButton2->setBgColor(QColor(255, 107, 107)); 22 | ui->lightButton3->setBgColor(QColor(24, 189, 155)); 23 | 24 | type = 0; 25 | 26 | QTimer *timer = new QTimer(this); 27 | timer->setInterval(1000); 28 | connect(timer, SIGNAL(timeout()), this, SLOT(updateValue())); 29 | timer->start(); 30 | updateValue(); 31 | 32 | //以下方法启动报警 33 | //ui->lightButton1->setAlarmColor(QColor(255, 0, 0)); 34 | //ui->lightButton1->setNormalColor(QColor(0, 0, 0)); 35 | //ui->lightButton1->startAlarm(); 36 | } 37 | 38 | void frmLightButton::updateValue() 39 | { 40 | if (type == 0) { 41 | ui->lightButton1->setLightGreen(); 42 | ui->lightButton2->setLightRed(); 43 | ui->lightButton3->setLightBlue(); 44 | type = 1; 45 | } else if (type == 1) { 46 | ui->lightButton1->setLightBlue(); 47 | ui->lightButton2->setLightGreen(); 48 | ui->lightButton3->setLightRed(); 49 | type = 2; 50 | } else if (type == 2) { 51 | ui->lightButton1->setLightRed(); 52 | ui->lightButton2->setLightBlue(); 53 | ui->lightButton3->setLightGreen(); 54 | type = 0; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /lightbutton/frmlightbutton.h: -------------------------------------------------------------------------------- 1 | #ifndef FRMLIGHTBUTTON_H 2 | #define FRMLIGHTBUTTON_H 3 | 4 | #include 5 | 6 | namespace Ui { 7 | class frmLightButton; 8 | } 9 | 10 | class frmLightButton : public QWidget 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | explicit frmLightButton(QWidget *parent = 0); 16 | ~frmLightButton(); 17 | 18 | private: 19 | Ui::frmLightButton *ui; 20 | int type; 21 | 22 | private slots: 23 | void initForm(); 24 | void updateValue(); 25 | }; 26 | 27 | #endif // FRMLIGHTBUTTON_H 28 | -------------------------------------------------------------------------------- /lightbutton/frmlightbutton.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | frmLightButton 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | LightButton 31 | QWidget 32 |
lightbutton.h
33 | 1 34 |
35 |
36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /lightbutton/lightbutton.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | 3 | #include "lightbutton.h" 4 | #include "qpainter.h" 5 | #include "qpainterpath.h" 6 | #include "qevent.h" 7 | #include "qtimer.h" 8 | #include "qdebug.h" 9 | 10 | LightButton::LightButton(QWidget *parent) : QWidget(parent) 11 | { 12 | text = ""; 13 | textColor = QColor(255, 255, 255); 14 | alarmColor = QColor(255, 107, 107); 15 | normalColor = QColor(10, 10, 10); 16 | 17 | borderOutColorStart = QColor(255, 255, 255); 18 | borderOutColorEnd = QColor(166, 166, 166); 19 | 20 | borderInColorStart = QColor(166, 166, 166); 21 | borderInColorEnd = QColor(255, 255, 255); 22 | 23 | bgColor = QColor(100, 184, 255); 24 | 25 | showRect = false; 26 | showOverlay = true; 27 | overlayColor = QColor(255, 255, 255); 28 | 29 | canMove = false; 30 | this->installEventFilter(this); 31 | 32 | isAlarm = false; 33 | timerAlarm = new QTimer(this); 34 | connect(timerAlarm, SIGNAL(timeout()), this, SLOT(alarm())); 35 | timerAlarm->setInterval(500); 36 | } 37 | 38 | bool LightButton::eventFilter(QObject *watched, QEvent *event) 39 | { 40 | if (canMove) { 41 | static QPoint lastPoint; 42 | static bool pressed = false; 43 | QMouseEvent *mouseEvent = static_cast(event); 44 | 45 | if (mouseEvent->type() == QEvent::MouseButtonPress) { 46 | if (this->rect().contains(mouseEvent->pos()) && (mouseEvent->button() == Qt::LeftButton)) { 47 | lastPoint = mouseEvent->pos(); 48 | pressed = true; 49 | } 50 | } else if (mouseEvent->type() == QEvent::MouseMove && pressed) { 51 | int dx = mouseEvent->pos().x() - lastPoint.x(); 52 | int dy = mouseEvent->pos().y() - lastPoint.y(); 53 | this->move(this->x() + dx, this->y() + dy); 54 | } else if (mouseEvent->type() == QEvent::MouseButtonRelease && pressed) { 55 | pressed = false; 56 | } 57 | } 58 | 59 | return QWidget::eventFilter(watched, event); 60 | } 61 | 62 | void LightButton::paintEvent(QPaintEvent *) 63 | { 64 | int width = this->width(); 65 | int height = this->height(); 66 | int side = qMin(width, height); 67 | 68 | //绘制准备工作,启用反锯齿,平移坐标轴中心,等比例缩放 69 | QPainter painter(this); 70 | painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); 71 | 72 | if (showRect) { 73 | //绘制矩形区域 74 | painter.setPen(Qt::NoPen); 75 | painter.setBrush(bgColor); 76 | painter.drawRoundedRect(this->rect(), 5, 5); 77 | 78 | //绘制文字 79 | if (!text.isEmpty()) { 80 | QFont font; 81 | font.setPixelSize(side - 20); 82 | painter.setFont(font); 83 | painter.setPen(textColor); 84 | painter.drawText(this->rect(), Qt::AlignCenter, text); 85 | } 86 | } else { 87 | painter.translate(width / 2, height / 2); 88 | painter.scale(side / 200.0, side / 200.0); 89 | 90 | //绘制外边框 91 | drawBorderOut(&painter); 92 | //绘制内边框 93 | drawBorderIn(&painter); 94 | //绘制内部指示颜色 95 | drawBg(&painter); 96 | //绘制居中文字 97 | drawText(&painter); 98 | //绘制遮罩层 99 | drawOverlay(&painter); 100 | } 101 | } 102 | 103 | void LightButton::drawBorderOut(QPainter *painter) 104 | { 105 | int radius = 99; 106 | painter->save(); 107 | painter->setPen(Qt::NoPen); 108 | QLinearGradient borderGradient(0, -radius, 0, radius); 109 | borderGradient.setColorAt(0, borderOutColorStart); 110 | borderGradient.setColorAt(1, borderOutColorEnd); 111 | painter->setBrush(borderGradient); 112 | painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); 113 | painter->restore(); 114 | } 115 | 116 | void LightButton::drawBorderIn(QPainter *painter) 117 | { 118 | int radius = 90; 119 | painter->save(); 120 | painter->setPen(Qt::NoPen); 121 | QLinearGradient borderGradient(0, -radius, 0, radius); 122 | borderGradient.setColorAt(0, borderInColorStart); 123 | borderGradient.setColorAt(1, borderInColorEnd); 124 | painter->setBrush(borderGradient); 125 | painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); 126 | painter->restore(); 127 | } 128 | 129 | void LightButton::drawBg(QPainter *painter) 130 | { 131 | int radius = 80; 132 | painter->save(); 133 | painter->setPen(Qt::NoPen); 134 | painter->setBrush(bgColor); 135 | painter->drawEllipse(-radius, -radius, radius * 2, radius * 2); 136 | painter->restore(); 137 | } 138 | 139 | void LightButton::drawText(QPainter *painter) 140 | { 141 | if (text.isEmpty()) { 142 | return; 143 | } 144 | 145 | int radius = 100; 146 | painter->save(); 147 | 148 | QFont font; 149 | font.setPixelSize(85); 150 | painter->setFont(font); 151 | painter->setPen(textColor); 152 | QRect rect(-radius, -radius, radius * 2, radius * 2); 153 | painter->drawText(rect, Qt::AlignCenter, text); 154 | painter->restore(); 155 | } 156 | 157 | void LightButton::drawOverlay(QPainter *painter) 158 | { 159 | if (!showOverlay) { 160 | return; 161 | } 162 | 163 | int radius = 80; 164 | painter->save(); 165 | painter->setPen(Qt::NoPen); 166 | 167 | QPainterPath smallCircle; 168 | QPainterPath bigCircle; 169 | radius -= 1; 170 | smallCircle.addEllipse(-radius, -radius, radius * 2, radius * 2); 171 | radius *= 2; 172 | bigCircle.addEllipse(-radius, -radius + 140, radius * 2, radius * 2); 173 | 174 | //高光的形状为小圆扣掉大圆的部分 175 | QPainterPath highlight = smallCircle - bigCircle; 176 | 177 | QLinearGradient linearGradient(0, -radius / 2, 0, 0); 178 | overlayColor.setAlpha(100); 179 | linearGradient.setColorAt(0.0, overlayColor); 180 | overlayColor.setAlpha(30); 181 | linearGradient.setColorAt(1.0, overlayColor); 182 | painter->setBrush(linearGradient); 183 | painter->rotate(-20); 184 | painter->drawPath(highlight); 185 | 186 | painter->restore(); 187 | } 188 | 189 | QString LightButton::getText() const 190 | { 191 | return this->text; 192 | } 193 | 194 | QColor LightButton::getTextColor() const 195 | { 196 | return this->textColor; 197 | } 198 | 199 | QColor LightButton::getAlarmColor() const 200 | { 201 | return this->alarmColor; 202 | } 203 | 204 | QColor LightButton::getNormalColor() const 205 | { 206 | return this->normalColor; 207 | } 208 | 209 | QColor LightButton::getBorderOutColorStart() const 210 | { 211 | return this->borderOutColorStart; 212 | } 213 | 214 | QColor LightButton::getBorderOutColorEnd() const 215 | { 216 | return this->borderOutColorEnd; 217 | } 218 | 219 | QColor LightButton::getBorderInColorStart() const 220 | { 221 | return this->borderInColorStart; 222 | } 223 | 224 | QColor LightButton::getBorderInColorEnd() const 225 | { 226 | return this->borderInColorEnd; 227 | } 228 | 229 | QColor LightButton::getBgColor() const 230 | { 231 | return this->bgColor; 232 | } 233 | 234 | bool LightButton::getCanMove() const 235 | { 236 | return this->canMove; 237 | } 238 | 239 | bool LightButton::getShowRect() const 240 | { 241 | return this->showRect; 242 | } 243 | 244 | bool LightButton::getShowOverlay() const 245 | { 246 | return this->showOverlay; 247 | } 248 | 249 | QColor LightButton::getOverlayColor() const 250 | { 251 | return this->overlayColor; 252 | } 253 | 254 | QSize LightButton::sizeHint() const 255 | { 256 | return QSize(100, 100); 257 | } 258 | 259 | QSize LightButton::minimumSizeHint() const 260 | { 261 | return QSize(10, 10); 262 | } 263 | 264 | void LightButton::setText(const QString &text) 265 | { 266 | if (this->text != text) { 267 | this->text = text; 268 | this->update(); 269 | } 270 | } 271 | 272 | void LightButton::setTextColor(const QColor &textColor) 273 | { 274 | if (this->textColor != textColor) { 275 | this->textColor = textColor; 276 | this->update(); 277 | } 278 | } 279 | 280 | void LightButton::setAlarmColor(const QColor &alarmColor) 281 | { 282 | if (this->alarmColor != alarmColor) { 283 | this->alarmColor = alarmColor; 284 | this->update(); 285 | } 286 | } 287 | 288 | void LightButton::setNormalColor(const QColor &normalColor) 289 | { 290 | if (this->normalColor != normalColor) { 291 | this->normalColor = normalColor; 292 | this->update(); 293 | } 294 | } 295 | 296 | void LightButton::setBorderOutColorStart(const QColor &borderOutColorStart) 297 | { 298 | if (this->borderOutColorStart != borderOutColorStart) { 299 | this->borderOutColorStart = borderOutColorStart; 300 | this->update(); 301 | } 302 | } 303 | 304 | void LightButton::setBorderOutColorEnd(const QColor &borderOutColorEnd) 305 | { 306 | if (this->borderOutColorEnd != borderOutColorEnd) { 307 | this->borderOutColorEnd = borderOutColorEnd; 308 | this->update(); 309 | } 310 | } 311 | 312 | void LightButton::setBorderInColorStart(const QColor &borderInColorStart) 313 | { 314 | if (this->borderInColorStart != borderInColorStart) { 315 | this->borderInColorStart = borderInColorStart; 316 | this->update(); 317 | } 318 | } 319 | 320 | void LightButton::setBorderInColorEnd(const QColor &borderInColorEnd) 321 | { 322 | if (this->borderInColorEnd != borderInColorEnd) { 323 | this->borderInColorEnd = borderInColorEnd; 324 | this->update(); 325 | } 326 | } 327 | 328 | void LightButton::setBgColor(const QColor &bgColor) 329 | { 330 | if (this->bgColor != bgColor) { 331 | this->bgColor = bgColor; 332 | this->update(); 333 | } 334 | } 335 | 336 | void LightButton::setCanMove(bool canMove) 337 | { 338 | if (this->canMove != canMove) { 339 | this->canMove = canMove; 340 | this->update(); 341 | } 342 | } 343 | 344 | void LightButton::setShowRect(bool showRect) 345 | { 346 | if (this->showRect != showRect) { 347 | this->showRect = showRect; 348 | this->update(); 349 | } 350 | } 351 | 352 | void LightButton::setShowOverlay(bool showOverlay) 353 | { 354 | if (this->showOverlay != showOverlay) { 355 | this->showOverlay = showOverlay; 356 | this->update(); 357 | } 358 | } 359 | 360 | void LightButton::setOverlayColor(const QColor &overlayColor) 361 | { 362 | if (this->overlayColor != overlayColor) { 363 | this->overlayColor = overlayColor; 364 | this->update(); 365 | } 366 | } 367 | 368 | void LightButton::setGreen() 369 | { 370 | textColor = QColor(255, 255, 255); 371 | setBgColor(QColor(0, 166, 0)); 372 | } 373 | 374 | void LightButton::setRed() 375 | { 376 | textColor = QColor(255, 255, 255); 377 | setBgColor(QColor(255, 0, 0)); 378 | } 379 | 380 | void LightButton::setYellow() 381 | { 382 | textColor = QColor(25, 50, 7); 383 | setBgColor(QColor(238, 238, 0)); 384 | } 385 | 386 | void LightButton::setBlack() 387 | { 388 | textColor = QColor(255, 255, 255); 389 | setBgColor(QColor(10, 10, 10)); 390 | } 391 | 392 | void LightButton::setGray() 393 | { 394 | textColor = QColor(255, 255, 255); 395 | setBgColor(QColor(129, 129, 129)); 396 | } 397 | 398 | void LightButton::setBlue() 399 | { 400 | textColor = QColor(255, 255, 255); 401 | setBgColor(QColor(0, 0, 166)); 402 | } 403 | 404 | void LightButton::setLightBlue() 405 | { 406 | textColor = QColor(255, 255, 255); 407 | setBgColor(QColor(100, 184, 255)); 408 | } 409 | 410 | void LightButton::setLightRed() 411 | { 412 | textColor = QColor(255, 255, 255); 413 | setBgColor(QColor(255, 107, 107)); 414 | } 415 | 416 | void LightButton::setLightGreen() 417 | { 418 | textColor = QColor(255, 255, 255); 419 | setBgColor(QColor(24, 189, 155)); 420 | } 421 | 422 | void LightButton::startAlarm() 423 | { 424 | if (!timerAlarm->isActive()) { 425 | timerAlarm->start(); 426 | } 427 | } 428 | 429 | void LightButton::stopAlarm() 430 | { 431 | if (timerAlarm->isActive()) { 432 | timerAlarm->stop(); 433 | } 434 | } 435 | 436 | void LightButton::alarm() 437 | { 438 | if (isAlarm) { 439 | textColor = QColor(255, 255, 255); 440 | bgColor = normalColor; 441 | } else { 442 | textColor = QColor(255, 255, 255); 443 | bgColor = alarmColor; 444 | } 445 | 446 | this->update(); 447 | isAlarm = !isAlarm; 448 | } 449 | -------------------------------------------------------------------------------- /lightbutton/lightbutton.h: -------------------------------------------------------------------------------- 1 | #ifndef LIGHTBUTTON_H 2 | #define LIGHTBUTTON_H 3 | 4 | /** 5 | * 高亮发光按钮控件 作者:feiyangqingyun(QQ:517216493) 2016-10-16 6 | * 1. 可设置文本,居中显示。 7 | * 2. 可设置文本颜色。 8 | * 3. 可设置外边框渐变颜色。 9 | * 4. 可设置里边框渐变颜色。 10 | * 5. 可设置背景色。 11 | * 6. 可直接调用内置的设置 绿色、红色、黄色、黑色、蓝色 等公有槽函数。 12 | * 7. 可设置是否在容器中可移动,当成一个对象使用。 13 | * 8. 可设置是否显示矩形。 14 | * 9. 可设置报警颜色、非报警颜色。 15 | * 10. 可控制启动报警和停止报警,报警时闪烁。 16 | */ 17 | 18 | #include 19 | 20 | #ifdef quc 21 | class Q_DECL_EXPORT LightButton : public QWidget 22 | #else 23 | class LightButton : public QWidget 24 | #endif 25 | 26 | { 27 | Q_OBJECT 28 | 29 | Q_PROPERTY(QString text READ getText WRITE setText) 30 | Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor) 31 | Q_PROPERTY(QColor alarmColor READ getAlarmColor WRITE setAlarmColor) 32 | Q_PROPERTY(QColor normalColor READ getNormalColor WRITE setNormalColor) 33 | 34 | Q_PROPERTY(QColor borderOutColorStart READ getBorderOutColorStart WRITE setBorderOutColorStart) 35 | Q_PROPERTY(QColor borderOutColorEnd READ getBorderOutColorEnd WRITE setBorderOutColorEnd) 36 | Q_PROPERTY(QColor borderInColorStart READ getBorderInColorStart WRITE setBorderInColorStart) 37 | Q_PROPERTY(QColor borderInColorEnd READ getBorderInColorEnd WRITE setBorderInColorEnd) 38 | Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor) 39 | 40 | Q_PROPERTY(bool canMove READ getCanMove WRITE setCanMove) 41 | Q_PROPERTY(bool showRect READ getShowRect WRITE setShowRect) 42 | Q_PROPERTY(bool showOverlay READ getShowOverlay WRITE setShowOverlay) 43 | Q_PROPERTY(QColor overlayColor READ getOverlayColor WRITE setOverlayColor) 44 | 45 | public: 46 | explicit LightButton(QWidget *parent = 0); 47 | 48 | protected: 49 | bool eventFilter(QObject *watched, QEvent *event); 50 | void paintEvent(QPaintEvent *); 51 | void drawBorderOut(QPainter *painter); 52 | void drawBorderIn(QPainter *painter); 53 | void drawBg(QPainter *painter); 54 | void drawText(QPainter *painter); 55 | void drawOverlay(QPainter *painter); 56 | 57 | private: 58 | QString text; //文本 59 | QColor textColor; //文字颜色 60 | QColor alarmColor; //报警颜色 61 | QColor normalColor; //正常颜色 62 | 63 | QColor borderOutColorStart; //外边框渐变开始颜色 64 | QColor borderOutColorEnd; //外边框渐变结束颜色 65 | QColor borderInColorStart; //里边框渐变开始颜色 66 | QColor borderInColorEnd; //里边框渐变结束颜色 67 | QColor bgColor; //背景颜色 68 | 69 | bool showRect; //显示成矩形 70 | bool canMove; //是否能够移动 71 | bool showOverlay; //是否显示遮罩层 72 | QColor overlayColor; //遮罩层颜色 73 | 74 | bool isAlarm; //是否报警 75 | QTimer *timerAlarm; //定时器切换颜色 76 | 77 | public: 78 | QString getText() const; 79 | QColor getTextColor() const; 80 | QColor getAlarmColor() const; 81 | QColor getNormalColor() const; 82 | 83 | QColor getBorderOutColorStart() const; 84 | QColor getBorderOutColorEnd() const; 85 | QColor getBorderInColorStart() const; 86 | QColor getBorderInColorEnd() const; 87 | QColor getBgColor() const; 88 | 89 | bool getCanMove() const; 90 | bool getShowRect() const; 91 | bool getShowOverlay() const; 92 | QColor getOverlayColor() const; 93 | 94 | QSize sizeHint() const; 95 | QSize minimumSizeHint() const; 96 | 97 | public Q_SLOTS: 98 | //设置文本 99 | void setText(const QString &text); 100 | //设置文本颜色 101 | void setTextColor(const QColor &textColor); 102 | 103 | //设置报警颜色+正常颜色 104 | void setAlarmColor(const QColor &alarmColor); 105 | void setNormalColor(const QColor &normalColor); 106 | 107 | //设置外边框渐变颜色 108 | void setBorderOutColorStart(const QColor &borderOutColorStart); 109 | void setBorderOutColorEnd(const QColor &borderOutColorEnd); 110 | 111 | //设置里边框渐变颜色 112 | void setBorderInColorStart(const QColor &borderInColorStart); 113 | void setBorderInColorEnd(const QColor &borderInColorEnd); 114 | 115 | //设置背景色 116 | void setBgColor(const QColor &bgColor); 117 | 118 | //设置是否可移动 119 | void setCanMove(bool canMove); 120 | //设置是否显示矩形 121 | void setShowRect(bool showRect); 122 | //设置是否显示遮罩层 123 | void setShowOverlay(bool showOverlay); 124 | //设置遮罩层颜色 125 | void setOverlayColor(const QColor &overlayColor); 126 | 127 | //设置为绿色 128 | void setGreen(); 129 | //设置为红色 130 | void setRed(); 131 | //设置为黄色 132 | void setYellow(); 133 | //设置为黑色 134 | void setBlack(); 135 | //设置为灰色 136 | void setGray(); 137 | //设置为蓝色 138 | void setBlue(); 139 | //设置为淡蓝色 140 | void setLightBlue(); 141 | //设置为淡红色 142 | void setLightRed(); 143 | //设置为淡绿色 144 | void setLightGreen(); 145 | 146 | //设置报警闪烁 147 | void startAlarm(); 148 | void stopAlarm(); 149 | void alarm(); 150 | }; 151 | 152 | #endif // LIGHTBUTTON_H 153 | -------------------------------------------------------------------------------- /lightbutton/lightbutton.pro: -------------------------------------------------------------------------------- 1 | QT += core gui 2 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 3 | greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat 4 | 5 | TARGET = lightbutton 6 | TEMPLATE = app 7 | DESTDIR = $$PWD/../bin 8 | CONFIG += warn_off 9 | 10 | SOURCES += main.cpp 11 | SOURCES += frmlightbutton.cpp 12 | SOURCES += lightbutton.cpp 13 | 14 | HEADERS += frmlightbutton.h 15 | HEADERS += lightbutton.h 16 | 17 | FORMS += frmlightbutton.ui 18 | -------------------------------------------------------------------------------- /lightbutton/main.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | 3 | #include "frmlightbutton.h" 4 | #include 5 | #include 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | QApplication a(argc, argv); 10 | QFont font; 11 | font.setFamily("Microsoft Yahei"); 12 | font.setPixelSize(13); 13 | a.setFont(font); 14 | 15 | #if (QT_VERSION < QT_VERSION_CHECK(5,0,0)) 16 | #if _MSC_VER 17 | QTextCodec *codec = QTextCodec::codecForName("gbk"); 18 | #else 19 | QTextCodec *codec = QTextCodec::codecForName("utf-8"); 20 | #endif 21 | QTextCodec::setCodecForLocale(codec); 22 | QTextCodec::setCodecForCStrings(codec); 23 | QTextCodec::setCodecForTr(codec); 24 | #else 25 | QTextCodec *codec = QTextCodec::codecForName("utf-8"); 26 | QTextCodec::setCodecForLocale(codec); 27 | #endif 28 | 29 | frmLightButton w; 30 | w.setWindowTitle("高亮发光按钮 (QQ: 517216493 WX: feiyangqingyun)"); 31 | w.show(); 32 | 33 | return a.exec(); 34 | } 35 | -------------------------------------------------------------------------------- /snap_android_demo/android_demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demo0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo0.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo1.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo2.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo4.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demo5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demo5.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demoh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demoh.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demoh1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demoh1.jpg -------------------------------------------------------------------------------- /snap_android_demo/android_demoh2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_android_demo/android_demoh2.jpg -------------------------------------------------------------------------------- /snap_audio_demo/audio_demo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_audio_demo/audio_demo1.jpg -------------------------------------------------------------------------------- /snap_audio_demo/audio_demo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_audio_demo/audio_demo2.jpg -------------------------------------------------------------------------------- /snap_audio_demo/audio_demo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_audio_demo/audio_demo3.jpg -------------------------------------------------------------------------------- /snap_audio_demo/audio_demo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_audio_demo/audio_demo4.jpg -------------------------------------------------------------------------------- /snap_audio_demo/audio_demo_android.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_audio_demo/audio_demo_android.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-1.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-10.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-11.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-12.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-2.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-3.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-4.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-5.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-6.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-7.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-8.jpg -------------------------------------------------------------------------------- /snap_customplot/5-4-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/5-4-9.jpg -------------------------------------------------------------------------------- /snap_customplot/customplot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_customplot/customplot.gif -------------------------------------------------------------------------------- /snap_dataout/dataout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout.gif -------------------------------------------------------------------------------- /snap_dataout/dataout1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout1.gif -------------------------------------------------------------------------------- /snap_dataout/dataout1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout1.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout2.gif -------------------------------------------------------------------------------- /snap_dataout/dataout2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout2.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout3.gif -------------------------------------------------------------------------------- /snap_dataout/dataout3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout3.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout4.gif -------------------------------------------------------------------------------- /snap_dataout/dataout4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout4.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout5.gif -------------------------------------------------------------------------------- /snap_dataout/dataout5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout5.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout6.gif -------------------------------------------------------------------------------- /snap_dataout/dataout6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout6.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout7.gif -------------------------------------------------------------------------------- /snap_dataout/dataout7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout7.jpg -------------------------------------------------------------------------------- /snap_dataout/dataout8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout8.gif -------------------------------------------------------------------------------- /snap_dataout/dataout8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/dataout8.jpg -------------------------------------------------------------------------------- /snap_dataout/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dataout/readme.md -------------------------------------------------------------------------------- /snap_dbdelegate/dbdelegate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbdelegate/dbdelegate.gif -------------------------------------------------------------------------------- /snap_dbdelegate/dbdelegate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbdelegate/dbdelegate.png -------------------------------------------------------------------------------- /snap_dbtool/dbtool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool1.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool1.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool2.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool2.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool3.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool3.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool4.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool4.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool5.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool5.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool6.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool6.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool7.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool7.jpg -------------------------------------------------------------------------------- /snap_dbtool/dbtool8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool8.gif -------------------------------------------------------------------------------- /snap_dbtool/dbtool8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_dbtool/dbtool8.jpg -------------------------------------------------------------------------------- /snap_hard/hard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_hard/hard.gif -------------------------------------------------------------------------------- /snap_hard/hard_idcard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_hard/hard_idcard.jpg -------------------------------------------------------------------------------- /snap_hard/hard_msgmodel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_hard/hard_msgmodel.jpg -------------------------------------------------------------------------------- /snap_hard/hard_posprint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_hard/hard_posprint.jpg -------------------------------------------------------------------------------- /snap_httpserver/httpserver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/httpserver.gif -------------------------------------------------------------------------------- /snap_httpserver/httpserver1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/httpserver1.gif -------------------------------------------------------------------------------- /snap_httpserver/httpserver2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/httpserver2.gif -------------------------------------------------------------------------------- /snap_httpserver/json数据.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/json数据.png -------------------------------------------------------------------------------- /snap_httpserver/大屏请求.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/大屏请求.png -------------------------------------------------------------------------------- /snap_httpserver/手机效果1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/手机效果1.jpg -------------------------------------------------------------------------------- /snap_httpserver/手机效果2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/手机效果2.jpg -------------------------------------------------------------------------------- /snap_httpserver/整体.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/整体.png -------------------------------------------------------------------------------- /snap_httpserver/网页内容.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/网页内容.png -------------------------------------------------------------------------------- /snap_httpserver/表格数据.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/表格数据.jpg -------------------------------------------------------------------------------- /snap_httpserver/配色方案.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_httpserver/配色方案.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110521.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110521.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110534.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110657.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110751.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110751.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110819.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110819.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110908.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110908.jpg -------------------------------------------------------------------------------- /snap_input/QQ截图20231209110932.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/QQ截图20231209110932.jpg -------------------------------------------------------------------------------- /snap_input/input2018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/input2018.jpg -------------------------------------------------------------------------------- /snap_input/input2019.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/input2019.gif -------------------------------------------------------------------------------- /snap_input/input2019.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_input/input2019.jpg -------------------------------------------------------------------------------- /snap_iottool/readme.md: -------------------------------------------------------------------------------- 1 | ## 1、编译说明 2 | 1. 本组件封装的modbus采集支持任意Qt版本,mqtt采集最低要求Qt5.5,也就是要求存在websocket模块。 3 | 2. mqtt采集如果启用了ssl,比如mqtts://和wss://两种,还需要环境中有ssl的库,或者将ssl的库文件拷贝到可执行文件同一目录。 4 | 3. 如果编译提示 error:numeric_limits’ is not a class...,找到qglobal.h头文件,最上面加一行 #include 就行。 5 | 6 | ## 2、代码使用 7 | ### 2.0 基本步骤 8 | 1. 第一步,将core_iot目录拷贝到你的项目的上一级目录。 9 | 2. 第二步,打开项目的pro文件,引入物联网组件,include ($$PWD/../core_iot/core_iot.pri)。 10 | 3. 第三步,在代码文件引入对应头文件,#include "iothelper.h" #include "iotbase.h" #include "iotmodbusbase.h",使用代码。 11 | 12 | ### 2.1 modbus 13 | - 不同协议的端口通过传入不同的端口类型字符串区分。 14 | - 串口采集需要设置串口号和波特率,网络采集需要设置主机地址和端口。 15 | - 各种参数都有默认值,不设置就按照默认值处理。 16 | - 协议类型中的Web是指websocket,也就是走websocket通信。 17 | - 无论是串口采集还是网络采集,数据处理部分完全一致。采集到的数据都是按照统一的格式信号发出来。 18 | - 数据顺序格式在下面的文档中使用说明部分有具体说明。 19 | 20 | #### 2.1.1 串口采集 21 | ```cpp 22 | //实例化串口采集类 23 | IotBase *iotBase = IotHelper::newIotBase("Modbus_Rtu_Com"); 24 | //设置串口号和波特率 25 | iotBase->setComName("COM1"); 26 | iotBase->setBaudRate(9600); 27 | //指定采集的设备地址集合 28 | QList addrs; 29 | addrs << 1 << 2 << 3; 30 | //指定采集的寄存器起始地址 31 | QList indexs; 32 | indexs << 0 << 0 << 0; 33 | //指定采集的寄存器数量个数 34 | QList numbers; 35 | numbers << 4 << 4 << 4; 36 | //指定采集的数据顺序格式 37 | QList formats; 38 | formats << Short_BA << Short_BA << Long_DCBA; 39 | //设置采集的参数集合 40 | iotBase->setInfo(addrs, indexs, numbers, formats); 41 | //启动采集 42 | iotBase->start(); 43 | ``` 44 | 45 | #### 2.1.2 网络采集 46 | ```cpp 47 | //实例化串口采集类 48 | IotBase *iotBase = IotHelper::newIotBase("Modbus_Tcp"); 49 | //设置串口号和波特率 50 | iotBase->setHostName("127.0.0.1"); 51 | iotBase->setHostPort(502); 52 | //指定采集的设备地址集合 53 | QList addrs; 54 | addrs << 1 << 2 << 3; 55 | //指定采集的寄存器起始地址 56 | QList indexs; 57 | indexs << 0 << 0 << 0; 58 | //指定采集的寄存器数量个数 59 | QList numbers; 60 | numbers << 4 << 4 << 4; 61 | //指定采集的数据顺序格式 62 | QList formats; 63 | formats << Short_BA << Short_BA << Long_DCBA; 64 | //设置采集的参数集合 65 | iotBase->setInfo(addrs, indexs, numbers, formats); 66 | //启动采集 67 | iotBase->start(); 68 | ``` 69 | 70 | #### 2.1.3 线程运行 71 | ```cpp 72 | //取消原来的启动 73 | //iotBase->start(); 74 | //默认不是单独的线程运行/如果需要多线程运行/需要手动指定线程 75 | QThread *iotThread = new QThread; 76 | //关联信号槽/线程启动自动开始采集/线程结束自动销毁采集类 77 | connect(iotThread, SIGNAL(started()), iotBase, SLOT(start())); 78 | connect(iotThread, SIGNAL(finished()), iotBase, SLOT(deleteLater())); 79 | //将采集类移动到线程执行 80 | iotBase->moveToThread(iotThread); 81 | //启动采集线程 82 | iotThread->start(); 83 | ``` 84 | 85 | #### 2.1.4 数据处理 86 | ```cpp 87 | //关联采集数据信号 88 | connect(iotBase, SIGNAL(receiveValue(QString, quint8, QList)), this, SLOT(receiveValue(QString, quint8, QList))); 89 | 90 | //采集了几个寄存器/这里的数据就有几个 91 | //为了兼容可能的数据格式/统一采用浮点数据作为参数的数据类型 92 | void frmIotServer::receiveValue(const QString &portName, quint8 addr, const QList &values) 93 | { 94 | 95 | } 96 | ``` 97 | 98 | ### 2.2 mqtt 99 | 100 | ```cpp 101 | //实例化mqtt采集类 102 | IotMqttBase *mqttBase = new IotMqttBase(this); 103 | //取出mqtt通信对象 104 | QMqttClient *mqttClient = mqttBase->getMqttClient(); 105 | //关联收到数据信号 106 | connect(mqttClient, SIGNAL(messageReceived(QByteArray, QMqttTopicName)), this, SLOT(messageReceived(QByteArray, QMqttTopicName))); 107 | //设置通信参数/主机地址和端口参数必须设置 108 | mqttClient->setHostname("broker.emqx.io"); 109 | mqttClient->setPort(1883); 110 | //还有其他一堆参数根据情况按需设置 111 | ..... 112 | //连接到服务器 113 | mqttBase->connectToHost(); 114 | //从服务器断开 115 | mqttBase->disconnectFromHost(); 116 | 117 | //发布主题 118 | mqttClient->publish("qtmqtt/topic", "hello"); 119 | //订阅主题 120 | mqttClient->subscribe("qtmqtt/topic"); 121 | ``` 122 | 123 | ## 3、使用说明 124 | 1. 设备模拟中如果设备地址填0则表示应答数据的地址取收到的地址,意味着永远不判断地址是否正确。 125 | 2. 设备采集会自动过滤掉离线的设备加快采集速度,并在60s间隔重新轮询一次所有设备,以便重新读取上线的设备,可以手动单击重新读取按钮用来立即执行采集所有设备。 126 | 3. **无论是modbus还是mqtt,都只是一个协议规范,根据该规范传输数据,至于对应数据位表示何种含义,比如是温度值还是湿度值,则由具体的厂家硬件决定,需要参考对应的厂家说明。** 127 | 4. 既然是个数据规范,那就无所谓是走串口还是网络或者websocket,理论上都可以,只是拿到数据后数据解析规则一样。 128 | 5. modbus slave模拟仿真工具使用说明 [https://zhuanlan.zhihu.com/p/529828725](https://zhuanlan.zhihu.com/p/529828725) 。 129 | 130 | ### 3.1 设备采集-Server 131 | #### 3.1.0 数据格式 132 | - 和其他的modbus采集工具一样,本组件也支持各种数据格式,其实就是高字节低字节的顺序。 133 | - 一般是2字节表示一个数据,后面又有4字节表示一个数据,目前好像还有8字节表示一个数据的设备。 134 | - 不同厂家的设备对应的字节顺序可能不同,要求可以自定义顺序,以便满足各种设备的接入。 135 | - 4字节的数据可以是长整型,也可能是浮点数,按照标准规则计算出浮点值。面对浮点数的采集,很多国内的厂商的做法是以长整型数据发出,再除以一个值比如1000进行换算,因为下位机往往是单片机,单片机对浮点数运算很鸡肋很吃力。 136 | - 最终的数据解析还要区分有符号和无符号,一般都是有符号,因为可以表示负数,比如温度就有负数。目前本组件都是按照有符号进行运算,后面有场景需要可以增加无符号的支持。 137 | - 如果发现数据解析不对,可以调整对应的顺序试试。 138 | - Short_AB,短整型数据,总共2字节,正序,高字节在前,低字节在后。 139 | - Short_BA,短整型数据,总共2字节,反序,低字节在前,高字节在后。 140 | - Long_ABCD,长整型数据,总共4字节,大端模式正序。 141 | - Long_DCBA,长整型数据,总共4字节,小端模式正序。 142 | - Long_BADC,长整型数据,总共4字节,大端模式反序。 143 | - Long_CDAB,长整型数据,总共4字节,小端模式反序。 144 | - Float_ABCD,浮点型数据,总共4字节,大端模式正序。 145 | - Float_DCBA,浮点型数据,总共4字节,小端模式正序。 146 | - Float_BADC,浮点型数据,总共4字节,大端模式反序。 147 | - Float_CDAB,浮点型数据,总共4字节,小端模式反序。 148 | 149 | #### 3.1.1 数据采集 150 | ![](snap/iot_server1.jpg) 151 | 152 | 1. 第一步,协议类型选择,本组件支持多种协议类型,如果选择的com,则需要填写串口号和波特率,选择的网络比如TCP,需要填写主机和端口号。 153 | 2. 第二步,选择轮询间隔,默认1s轮询一次。 154 | 3. 第三步,选择超时次数,默认3次,表示轮询3次还没有收到数据就离线。 155 | 4. 第四步,添加要采集的设备地址,起始地址和采集数量。默认会有三个地址,可以直接在表格中修改后再单击保存。 156 | - 单击添加按钮,会生成一个默认值的新行,直接修改值,单击保存。 157 | - 单击删除按钮,会将当前选中的行删除,删除后自动保存。 158 | - 单击保存按钮,将表格中的所有数据保存到配置文件。 159 | - 单击清空按钮,将表格中的所有数据清空,自动保存。 160 | - 第一列填设备地址,1个字节,范围值1-247,切记这里是从1开始的。在RTU协议中对应在第一个字节,在TCP协议中对应在第六个字节。 161 | - 第二列填寄存器开始地址,2个字节,范围值0-65535,切记这里是从0开始的,0表示第一个寄存器。 162 | - 第三列填采集的数量,2个字节,和开始地址组合使用,开始地址+数量<=65535。 163 | - 如果开始地址填0,采集数量填2,则表示采集寄存器1、寄存器2共2个寄存器的数据。 164 | - 如果开始地址填7,采集数量填4,则表示采集寄存器8、寄存器9、寄存器10、寄存器11共4个寄存器的数据。 165 | - 第四列填数据顺序格式,见上面数据格式说明。一般填Short_BA、Long_DCBA。 166 | 5. 单击启动服务按钮,会自动启动采集线程,如果采集设备存在则会显示对应采集到的数据。 167 | 6. 单击重新读取按钮,会立即复位设备离线状态,全部设备重新采集。为什么需要这个?因为一般在modbus采集过程中,都是按照轮询的方式采集的,但是实际场景中有些设备坏了或者根本没有,那每次都占用一次轮询时间是不是很浪费呢?这就需要自动跳过离线的设备,加快轮询速度。但是可能后面设备又接上去了,这个时候要么等待重连时间到了去采集,要么单击这个重新读取按钮立即触发。联调过程中往往喜欢单击这个按钮去立即触发一次,因为重连时间可能会比较大,傻傻的等待也不是个事。 168 | 7. 单击清空数据按钮,会清空左侧显示的数据,双击左侧的显示栏也会自动清空。 169 | 8. 所有收发的数据也会打印显示在左侧,方便查阅分析问题,也可以看到采集到的最终的值。 170 | 171 | #### 3.1.2 数据写入 172 | ![](snap/iot_server2.jpg) 173 | 174 | 1. 第一步,生成寄存器复选框、寄存器地址框、寄存器数值框,数量下拉框选择要生成的数量,自动一键生成。复选框的作用是用于单个写入数据,勾选了则表示该寄存器需要写入数据。寄存器地址可以更改,默认按照0-64依次递增。 175 | 2. 第二步,填写好设备地址,从1开始,也就是对哪个设备写入数据。 176 | 3. 第三步,单击写入数据/单个写入按钮,对勾选的寄存器地址写入对应微调框的值。会依次发送勾选了所在行的值。 177 | 4. 第四步,如果需要连续写入,还需要设置开始地址和写入数量,再单击连续写入按钮。比如要连续写入数据 01 10 07 d4 00 02 04 00 00 03 e8 d9 8e ,设备地址填1,开始地址填2004(07 d4=2004),写入数量填2(00 02),上面寄存器面板中随便找个行,填寄存器地址2004(程序会自动找到要写入的起始寄存器地址所在行),右侧填数据0,下面这个寄存器数值填1000,00 00 03 e8 表示两个寄存器的数据,分别数寄存器2004=0,,2005=1000。由于是连续写入,所以只需要填第一个起始寄存器的地址即可,后面的只需要填数据。 178 | 5. 单个写入对应功能码0x06,连续写入对应功能码0x10。 179 | 6. 写入动作和写入成功在左侧都有打印显示,一般是深绿色颜色显示,关键字写寄存器。 180 | 7. 寄存器地址默认最大到64,可更改,比如要写入数据 01 06 07 D1 00 00 D8 87,则勾选一个复选框,然后在后面填地址2001(07 D1=寄存器地址2001),后面填数据0,单击单个写入按钮即可。 181 | 8. 所有的勾选状态和寄存器地址和数值,都会自动保存到配置文件,下次打开自动读取并应用。 182 | 183 | ### 3.2 设备模拟-Com 184 | ![](snap/iot_com.jpg) 185 | 186 | 1. 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。 187 | 2. 第二步,填写对应的串口号和波特率。 188 | 3. 第三步,单击打开串口,成功后会变成关闭串口字样。 189 | 4. 单击清空数据会将左侧打印栏的信息清空。 190 | 5. 右侧一堆微调框用于模拟对应设备多个寄存器地址的值,默认是8个寄存器,微调框可以输入负数值。 191 | 6. 单击随机按钮,用于随机生成该范围值的数据,方便测试验证数据。 192 | 193 | ### 3.3 设备模拟-Tcp 194 | ![](snap/iot_tcp.jpg) 195 | 196 | 1. 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。 197 | 2. 第二步,填写监听的端口号,这里没有指定网卡,默认绑定所有网卡。无论连接哪个网卡的端口都能连通。 198 | 3. 第三步,选择数据模式,可选Rtu模式和Net模式。 199 | 4. 第四步,单击开始监听,监听成功会变成关闭监听字样。 200 | 5. 单击清空数据会将左侧打印栏的信息清空。 201 | 6. 右侧一堆微调框用于模拟对应设备多个寄存器地址的值,默认是8个寄存器,微调框可以输入负数值。 202 | 7. 单击随机按钮,用于随机生成该范围值的数据,方便测试验证数据。 203 | 204 | ### 3.4 设备模拟-Udp 205 | ![](snap/iot_udp.jpg) 206 | 207 | 1. 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。 208 | 2. 第二步,填写监听的端口号,这里没有指定网卡,默认绑定所有网卡。无论连接哪个网卡的端口都能连通。 209 | 3. 第三步,选择数据模式,可选Rtu模式和Net模式。 210 | 4. 第四步,单击开始监听,监听成功会变成关闭监听字样。 211 | 5. 单击清空数据会将左侧打印栏的信息清空。 212 | 6. 右侧一堆微调框用于模拟对应设备多个寄存器地址的值,默认是8个寄存器,微调框可以输入负数值。 213 | 7. 单击随机按钮,用于随机生成该范围值的数据,方便测试验证数据。 214 | 215 | ### 3.5 设备模拟-Web 216 | ![](snap/iot_web.jpg) 217 | 218 | 1. 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。 219 | 2. 第二步,填写监听的端口号,这里没有指定网卡,默认绑定所有网卡。无论连接哪个网卡的端口都能连通。 220 | 3. 第三步,选择数据模式,可选Rtu模式和Net模式。 221 | 4. 第四步,单击开始监听,监听成功会变成关闭监听字样。 222 | 5. 单击清空数据会将左侧打印栏的信息清空。 223 | 6. 右侧一堆微调框用于模拟对应设备多个寄存器地址的值,默认是8个寄存器,微调框可以输入负数值。 224 | 7. 单击随机按钮,用于随机生成该范围值的数据,方便测试验证数据。 225 | 226 | ### 3.6 发布订阅-Mqtt 227 | ![](snap/iot_mqtt.jpg) 228 | 229 | 1. 第一步,选择协议前缀,可选mqtt://、mqtts://、ws://、wss://四种,带s结尾的是走ssl通信,ws表示走websocket通信。一般选默认的mqtt://就好。 230 | 2. 第二步,填写服务所在主机地址,可以是IP地址也可以是网址,只要真实存在的就行。 231 | 3. 第三步,填写通信所用端口号,mqtt默认端口号是1883,以实际真实端口号为准。 232 | 4. 第四步,填写资源路径,这个要websocket通信才需要填写。 233 | 5. 第五步,选择协议版本,这个要和实际的一致,比如服务器不支持5.0,而这里选择的5.0则会失败。一般服务器都会支持所有协议,因为在通信过程中会告知当前用哪个协议。 234 | 6. 第六步,填写客户端唯一编号,这个可选,如果服务器要求一定要填写则填写,不然通信会失败。 235 | 7. 第七步,单击启动服务按钮,连接成功后会变成断开服务按钮。 236 | 8. 第八步,发布主题,先要在主题文本框中输入主题字符串,再单击发布主题按钮。 237 | 9. 第九步,订阅主题,先要在主题文本框中输入主题字符串,再单击订阅主题按钮。 238 | 10. 既可以发布主题,也可以订阅主题,还可以取消订阅的主题。 239 | 11. 有些场景只需要发布主题,比如下位机采集到的数据,则只需要发布主题带上数据内容即可。 240 | 12. 有些场景只需要订阅主题,比如上位机通过订阅主题获取到最新的数据,订阅对应主题后,有新的主题数据发布,就会立即更新通知订阅过的客户端。 241 | 13. 发布的主题和订阅的主题,标识可以相同也可以不同,同一个标识的才会触发通知机制,一旦发布主题就会触发通知订阅过该主题的客户端。 242 | 14. 切换到高级参数选项卡,有一堆高级参数可以设置,比如用户验证,这样可以防止非法用户访问。一般合法的用户信息需要在mqtt服务的后台设置,相当于权限控制。 243 | 244 | ## 4、功能特点 245 | 1. 支持多种物联网通信协议,包括modbus和mqtt。 246 | 2. 协议方式支持串口com通信、网络tcp通信、网络udp通信、网络websocket通信。 247 | 3. 数据规则支持rtu模式和网络模式,网络rtu模式也就是modbus rtu over tcp/udp/websocket。相当于modbus串口协议数据走网络方式通信。 248 | 4. 支持批量连续写入寄存器数值和单个写入寄存器数值。 249 | 5. 支持数据顺序格式的设置,比如大端小端,高字节在前低字节在前的设置。支持Short_AB、Short_BA、Long_ABCD、Long_CDAB、Long_BADC、Long_DCBA、Float_ABCD、Float_CDAB、Float_BADC、Float_DCBA等。 250 | 6. 支持数据位字节数设置,比如短整型、长整型、浮点型等。常规的一般是2字节表示一个数据位,也有设备是4字节表示一个数据位,还有4字节浮点数的形式。后期可能还有8字节一个数据位。 251 | 7. 支持mqtt协议,可设置主机地址和端口、协议版本、唯一标号、用户名称、用户密码。 252 | 8. 支持mqtt发布主题、订阅主题、取消订阅。 253 | 9. 定时自动发布主题,可设置保活时间、超时时间、过期时间。mqtt通信自动重连。 254 | 10. mqtt模拟数据收发支持多种格式,文本、json、base64、hex等。 255 | 11. mqtt同时支持websocket方式,还支持ssl方式通信。 256 | 12. 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。可同时采集多路。 257 | 13. 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。 258 | 14. 可设置最大超时重连间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。 259 | 15. 同时提供了设备模拟工具,支持各种协议,支持设定多个设备的数据值。 260 | 16. 模拟工具可随机切换模拟数据值,要正常随机数据就模拟生成正常范围的数据,要报警数据就模拟生成报警范围的数据。方便测试。 261 | 17. 多线程采集和解析数据,以信号的方式发送解析结果,不卡主线程。 262 | 18. 架构采用基类继承方式,通用处理在基类,极易拓展其他通信方式。 263 | 19. 接口友好,使用非常简单,设置要采集的地址集合、开始索引集合、采集数量集合、数据顺序格式四个参数即可。会自动组装对应协议的数据发送。 264 | 20. 采集后的数据以统一格式的信号发出来,非常简单易用。支持浮点型数据。 265 | 21. 采集指令有优先级,如果有自定义的数据需要优先执行。可以将优先级高的指令调用append方法插入即可。可批量采集也可单个采集。 266 | 22. 支持利用现有的通信链路发送自定义数据,这个数据可以不是标准的modbus协议,比如有时候需要一些私有协议数据,利用现有链路发送下去执行。 267 | 23. 多线程高并发,每个端口采集都是一个独立的线程,互不干扰,支持成千上万个设备采集。 268 | 24. 代码做了兼容,支持各种编译器,同时支持Qt4、Qt5、Qt6。 269 | 25. 跨平台,支持windows、linux、mac、嵌入式linux、android、各种国产系统和开发板等。 270 | 271 | ## 5、协议-modbus 272 | ### 5.0 模式说明 273 | 1. 总共有三种模式,RTU模式(一般用在串口),网络模式(一般用在网络),ASCII模式(一般用在串口,现在几乎很少用)。 274 | 2. RTU模式有校验字节,网络模式没有校验字节,因为网络通信数据不会出错。 275 | 3. 校验字节计算是从所有要发送的数据一起运算,从第一位的设备地址开始的,最后发送的完整数据是带上校验数据的。 276 | 4. 写单个寄存器的应答数据就是收到的数据,写多个寄存器的应答数据是包含起始地址和寄存器个数的数据体数据,并不是原数据,相当于告知从哪个起始地址开始写入了多少个寄存器数值成功。 277 | 5. 可以这么理解,网络模式的报文,包含了RTU的报文,是在RTU报文基础上,前面加上了事务标识符+协议标识符+长度字节共计6字节,同时末尾去掉了校验字节。网络报文=事务标识符+协议标识符+后面总共有多少个字节+RTU报文去掉校验字节。 278 | 6. 参考文章 https://blog.csdn.net/m0_47136030/article/details/139128639 279 | 280 | ### 5.1 RTU模式 281 | #### 5.1.1 读多个寄存器-0x03 282 | 发送:01 03 00 00 00 04 44 09 283 | - 01 设备地址。 284 | - 03 功能码。 285 | - 00 00 开始读取地址。 286 | - 00 04 读取数据长度。 287 | - 44 09 CRC校验 288 | 289 | 接收:01 03 08 00 0a 00 03 00 11 00 04 2a 11 290 | - 01 设备地址。 291 | - 03 功能码。 292 | - 08 数据长度,表示后面有8字节的数据。 293 | - 00 0a 第一个寄存器数据。 294 | - 00 03 第二个寄存器数据。 295 | - 00 11 第三个寄存器数据。 296 | - 00 04 第四个寄存器数据。 297 | - 2a 11 CRC校验 298 | 299 | #### 5.1.2 写单个寄存器-0x06 300 | 发送:01 06 00 00 00 19 48 00 301 | - 01 设备地址 302 | - 06 功能码 303 | - 00 00 寄存器地址 304 | - 00 19 寄存器数值 305 | - 48 00 CRC校验 306 | 307 | 接收:01 06 00 00 00 19 48 00 308 | 说明:写入的什么数据就应答什么数据 309 | 310 | #### 5.1.3 写多个寄存器-0x10 311 | 发送:01 10 00 00 00 04 08 00 19 00 58 00 37 00 2c af 65 312 | - 01 设备地址 313 | - 10 功能码 314 | - 00 00 寄存器开始地址 315 | - 00 04 总共写入多少个寄存器 316 | - 08 总共写入8个字节数据/永远是数量的两倍 317 | - 00 19 写入的第1个寄存器数值 318 | - 00 58 写入的第2个寄存器数值 319 | - 00 37 写入的第3个寄存器数值 320 | - 00 2c 写入的第4个寄存器数值 321 | - af 65 CRC校验 322 | 323 | 接收:01 10 00 00 00 04 c1 ca 324 | - 01 设备地址 325 | - 10 功能码 326 | - 00 00 寄存器开始地址 327 | - 00 04 总共写入多少个寄存器 328 | 329 | ### 5.2 网络模式 330 | #### 5.2.1 读多个寄存器-0x03 331 | 发送:00 01 00 00 00 06 01 03 00 00 00 04 332 | - 00 01 事务标识符,一般是递增序号。 333 | - 00 00 网络标识符,标识当前是modbus协议。 334 | - 00 06 长度字节,表示后面有6个字节数据。 335 | - 01 设备地址。 336 | - 03 功能码。 337 | - 00 00 开始读取地址。 338 | - 00 04 读取数据长度。 339 | 340 | 接收:00 01 00 00 00 0b 01 03 08 00 0a 00 03 00 11 00 04 341 | - 00 01 事务标识符,递增序号,和发送的一致。 342 | - 00 00 网络标识符,标识当前是modbus协议。 343 | - 00 0b 长度字节,表示后面有11个字节数据。 344 | - 01 设备地址。 345 | - 03 功能码。 346 | - 08 数据长度,表示后面有8个字节的数据。 347 | - 00 0a 第一个寄存器数据。 348 | - 00 03 第二个寄存器数据。 349 | - 00 11 第三个寄存器数据。 350 | - 00 04 第四个寄存器数据。 351 | 352 | #### 5.2.2 写单个寄存器-0x06 353 | 发送:00 01 00 00 00 06 01 06 00 00 00 4d 354 | - 00 01 事务标识符 355 | - 00 00 网络标识符 356 | - 00 06 长度字节 357 | - 01 设备地址 358 | - 06 功能码 359 | - 00 00 写入寄存器地址 360 | - 00 4d 写入寄存器数值 361 | 362 | 接收:00 01 00 00 00 06 01 06 00 00 00 4d 363 | 说明:写入的什么数据就应答什么数据 364 | 365 | #### 5.2.3 写多个寄存器-0x10 366 | 发送:00 01 00 00 00 0f 01 10 00 00 00 04 08 00 0e 00 55 00 37 00 2c 367 | - 00 01 事务标识符 368 | - 00 00 网络标识符 369 | - 00 0f 长度字节 370 | - 01 设备地址 371 | - 10 功能码 372 | - 00 00 寄存器开始地址 373 | - 00 04 总共写入多少个寄存器 374 | - 08 后面总共有多少个字节数据 375 | - 00 0e 写入的第1个寄存器数值 376 | - 00 55 写入的第2个寄存器数值 377 | - 00 37 写入的第3个寄存器数值 378 | - 00 2c 写入的第4个寄存器数值 379 | 380 | 接收:00 01 00 00 00 06 01 10 00 00 00 04 381 | - 00 01 事务标识符 382 | - 00 00 网络标识符 383 | - 00 06 长度字节 384 | - 01 设备地址 385 | - 10 功能码 386 | - 00 00 寄存器开始地址 387 | - 00 04 总共写入多少个寄存器 388 | 389 | ## 6、协议-mqtt 390 | - 参考:https://blog.csdn.net/sinat_41690014/article/details/130171072 391 | - 编号:0123456789abcdefghijklm 392 | - 用户:admin 393 | - 密码:admin 394 | - 主题:qtmqtt/topic 395 | - 消息:hello Qt 396 | 397 | ### 6.1 版本3.1 398 | 连接:103300064d514973647003c2003c0017303132333435363738396162636465666768696a6b6c6d000561646d696e000561646d696e 399 | 应答:20 02 00 00 400 | 401 | 心跳:c0 00 402 | 应答:d0 00 403 | 断开:e0 00 404 | 405 | 发布:3016000c71746d7174742f746f70696368656c6c6f205174 406 | 应答:3016000c71746d7174742f746f70696368656c6c6f205174 (订阅后才有应答) 407 | 408 | 订阅:82110002000c71746d7174742f746f70696300 409 | 应答:9003000200 410 | 411 | ### 6.2 版本3.1.1 412 | 连接:103100044d51545404c2003c0017303132333435363738396162636465666768696a6b6c6d000561646d696e000561646d696e 413 | 应答:20 02 00 00 414 | 415 | 心跳:c0 00 416 | 应答:d0 00 417 | 断开:e0 00 418 | 419 | 发布:3016000c71746d7174742f746f70696368656c6c6f205174 420 | 应答:3016000c71746d7174742f746f70696368656c6c6f205174 (订阅后才有应答) 421 | 422 | 订阅:82110002000c71746d7174742f746f70696300 423 | 应答:9003000200 424 | 425 | ### 6.3 版本5.0 426 | 连接:103200044d51545405c2003c000017303132333435363738396162636465666768696a6b6c6d000561646d696e000561646d696e 427 | 应答:2013000010270010000025012a01290122ffff2801 428 | 429 | 心跳:c0 00 430 | 应答:d0 00 431 | 断开:e0 00 432 | 433 | 发布:3017000c71746d7174742f746f7069630068656c6c6f205174 434 | 应答:3017000c71746d7174742f746f7069630068656c6c6f205174 (订阅后才有应答) 435 | 436 | 订阅:8212000300000c71746d7174742f746f70696300 437 | 应答:900400030000 438 | 439 | ### 6.4 协议拆解 440 | 441 | 442 | ### 6.5 协议区别 443 | - 3.1版本可变头部关键字是MQISdP,3.1.1和5.0是MQTT。 444 | 445 | 446 | ### 6.6 编译mqtt 447 | - 参考链接 https://blog.csdn.net/luoyayun361/article/details/128339682 448 | - 第一步:下载源码 git clone https://github.com/qt/qtmqtt 449 | - 第二步:进入目录 cd qtmqtt 450 | - 第三步:查看分支 git branch -a 看完后按 q 退出 451 | - 第四步:切换版本 git checkout -b 5.10 origin/5.10 452 | - 官方的qtmqtt组件最低支持5.10,代码稍微改改可以最低支持到5.3,因为5.3开始才有websocket模块。 453 | - 客户端即可以是发布者,也可以是订阅者。 454 | - 一般都是实现客户端,mqtt服务程序一般用第三方开源的。 455 | - mqtt就是一套协议规范,建立在tcp长连接基础上,发布者和订阅者其实就是两个tcpsocket客户端,连接到tcpserver服务器,所有数据交互都由服务器处理,通过主题来区分消息类型。 456 | 457 | ## 7、效果图 458 | ### 7.1 windows 459 | ![](snap/iotsystem_win.jpg) 460 | 461 | ### 7.2 linux 462 | ![](snap/iotsystem_linux.jpg) 463 | 464 | ### 7.3 wasm 465 | ![](snap/iotsystem_wasm.jpg) 466 | 467 | - 物联网平台可以编译成wasm版本,直接网页运行,现在的浏览器基本的原生就支持wasm,并不是activex方式。 468 | - 和wasm版本通信,选择websocket方式,这就是为什么modbus协议部分还要支持websocket的重要原因。 469 | 470 | ### 7.4 modbus slave 471 | ![](snap/iottool_modbusslave.jpg) 472 | 473 | - 本组件支持和著名的模拟工具modbus slave/modbus poll组合使用。 474 | - 支持slave中的各种通信模式比如串口和网络,RTU OVER xxx。 475 | - 数据顺序可以自定义设置。 -------------------------------------------------------------------------------- /snap_iottool/snap/iot_com.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_com.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_mqtt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_mqtt.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_server1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_server1.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_server2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_server2.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_tcp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_tcp.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_udp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_udp.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iot_web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iot_web.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iotsystem_linux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iotsystem_linux.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iotsystem_wasm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iotsystem_wasm.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iotsystem_win.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iotsystem_win.jpg -------------------------------------------------------------------------------- /snap_iottool/snap/iottool_modbusslave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_iottool/snap/iottool_modbusslave.jpg -------------------------------------------------------------------------------- /snap_key/keydemo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_key/keydemo.jpg -------------------------------------------------------------------------------- /snap_key/keyserver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_key/keyserver.jpg -------------------------------------------------------------------------------- /snap_key/keytool.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_key/keytool.jpg -------------------------------------------------------------------------------- /snap_map/snap/Qt目录中webengine脚本文件位置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/Qt目录中webengine脚本文件位置.jpg -------------------------------------------------------------------------------- /snap_map/snap/app.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/app.jpg -------------------------------------------------------------------------------- /snap_map/snap/map100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map100.jpg -------------------------------------------------------------------------------- /snap_map/snap/map1000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map1000.jpg -------------------------------------------------------------------------------- /snap_map/snap/map101.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map101.jpg -------------------------------------------------------------------------------- /snap_map/snap/map102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map102.jpg -------------------------------------------------------------------------------- /snap_map/snap/map200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map200.jpg -------------------------------------------------------------------------------- /snap_map/snap/map201.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map201.jpg -------------------------------------------------------------------------------- /snap_map/snap/map202.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map202.jpg -------------------------------------------------------------------------------- /snap_map/snap/map203.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map203.jpg -------------------------------------------------------------------------------- /snap_map/snap/map204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map204.jpg -------------------------------------------------------------------------------- /snap_map/snap/map205.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map205.jpg -------------------------------------------------------------------------------- /snap_map/snap/map206.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map206.jpg -------------------------------------------------------------------------------- /snap_map/snap/map207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map207.jpg -------------------------------------------------------------------------------- /snap_map/snap/map208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map208.jpg -------------------------------------------------------------------------------- /snap_map/snap/map300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map300.jpg -------------------------------------------------------------------------------- /snap_map/snap/map301.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map301.jpg -------------------------------------------------------------------------------- /snap_map/snap/map400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map400.jpg -------------------------------------------------------------------------------- /snap_map/snap/map401.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map401.jpg -------------------------------------------------------------------------------- /snap_map/snap/map500.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map500.jpg -------------------------------------------------------------------------------- /snap_map/snap/map600.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map600.jpg -------------------------------------------------------------------------------- /snap_map/snap/map601.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map601.jpg -------------------------------------------------------------------------------- /snap_map/snap/map700.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map700.jpg -------------------------------------------------------------------------------- /snap_map/snap/map701.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map701.jpg -------------------------------------------------------------------------------- /snap_map/snap/map800.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map800.jpg -------------------------------------------------------------------------------- /snap_map/snap/map801.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map801.jpg -------------------------------------------------------------------------------- /snap_map/snap/map802.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map802.jpg -------------------------------------------------------------------------------- /snap_map/snap/map803.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map803.jpg -------------------------------------------------------------------------------- /snap_map/snap/map900.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/map900.jpg -------------------------------------------------------------------------------- /snap_map/snap/path_tiles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/path_tiles.jpg -------------------------------------------------------------------------------- /snap_map/snap/path_tiles_hybrid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/path_tiles_hybrid.jpg -------------------------------------------------------------------------------- /snap_map/snap/path_tiles_self.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/path_tiles_self.jpg -------------------------------------------------------------------------------- /snap_map/snap/path_tiles_self1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/path_tiles_self1.jpg -------------------------------------------------------------------------------- /snap_map/snap/天地图后台配置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/天地图后台配置.jpg -------------------------------------------------------------------------------- /snap_map/snap/百度地图后台配置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_map/snap/百度地图后台配置.jpg -------------------------------------------------------------------------------- /snap_property/code_property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/code_property.png -------------------------------------------------------------------------------- /snap_property/property.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/property.jpg -------------------------------------------------------------------------------- /snap_property/property1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/property1.png -------------------------------------------------------------------------------- /snap_property/property2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/property2.png -------------------------------------------------------------------------------- /snap_property/property3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/property3.png -------------------------------------------------------------------------------- /snap_property/串口采集.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/串口采集.gif -------------------------------------------------------------------------------- /snap_property/加载属性.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/加载属性.gif -------------------------------------------------------------------------------- /snap_property/加载插件.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/加载插件.gif -------------------------------------------------------------------------------- /snap_property/动态属性.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/动态属性.gif -------------------------------------------------------------------------------- /snap_property/完整视频.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/完整视频.gif -------------------------------------------------------------------------------- /snap_property/导入xml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/导入xml.gif -------------------------------------------------------------------------------- /snap_property/导出xml.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/导出xml.gif -------------------------------------------------------------------------------- /snap_property/属性中文.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/属性中文.gif -------------------------------------------------------------------------------- /snap_property/拉伸控件.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/拉伸控件.gif -------------------------------------------------------------------------------- /snap_property/拖曳控件.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/拖曳控件.gif -------------------------------------------------------------------------------- /snap_property/数据库采集.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/数据库采集.gif -------------------------------------------------------------------------------- /snap_property/用户属性.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/用户属性.gif -------------------------------------------------------------------------------- /snap_property/网络采集.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_property/网络采集.gif -------------------------------------------------------------------------------- /snap_quc/000.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/000.gif -------------------------------------------------------------------------------- /snap_quc/3-1-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-13.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-14.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-15.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-16.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-17.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-18.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-19.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-20.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-21.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-22.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-23.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-24.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-1-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-1-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-10-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-10-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-11-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-11-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-13.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-14.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-15.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-16.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-17.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-12-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-12-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-13-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-13-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-13-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-13-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-13-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-13-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-13-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-13-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-14-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-14-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-15-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-15-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-16-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-16-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-17-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-17-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-18-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-18-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-19-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-19-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-2-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-2-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-20-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-20-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-20-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-20-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-20-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-20-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-20-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-20-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-20-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-20-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-12.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-13.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-14.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-15.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-16.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-17.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-18.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-3-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-3-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-11.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-4-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-4-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-10.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-8.jpg -------------------------------------------------------------------------------- /snap_quc/3-5-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-5-9.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-6-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-6-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-4.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-5.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-6.jpg -------------------------------------------------------------------------------- /snap_quc/3-7-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-7-7.jpg -------------------------------------------------------------------------------- /snap_quc/3-8-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-8-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-8-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-8-2.jpg -------------------------------------------------------------------------------- /snap_quc/3-8-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-8-3.jpg -------------------------------------------------------------------------------- /snap_quc/3-9-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-9-1.jpg -------------------------------------------------------------------------------- /snap_quc/3-9-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/3-9-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-1-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-1-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-3.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-4.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-5.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-6.jpg -------------------------------------------------------------------------------- /snap_quc/4-10-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-10-7.jpg -------------------------------------------------------------------------------- /snap_quc/4-2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-2-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-2-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-2-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-3-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-3-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-3-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-3-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-3-3.jpg -------------------------------------------------------------------------------- /snap_quc/4-4-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-4-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-5-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-5-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-6-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-6-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-6-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-6-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-7-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-7-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-8-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-8-1.jpg -------------------------------------------------------------------------------- /snap_quc/4-8-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-8-2.jpg -------------------------------------------------------------------------------- /snap_quc/4-9-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_quc/4-9-1.jpg -------------------------------------------------------------------------------- /snap_tcpfile/tcpfile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_tcpfile/tcpfile.gif -------------------------------------------------------------------------------- /snap_tcpfile/tcpfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_tcpfile/tcpfile.png -------------------------------------------------------------------------------- /snap_uidemo/1_code0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/1_code0.png -------------------------------------------------------------------------------- /snap_uidemo/1_code1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/1_code1.png -------------------------------------------------------------------------------- /snap_uidemo/qui.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/qui.gif -------------------------------------------------------------------------------- /snap_uidemo/quicreator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/quicreator.gif -------------------------------------------------------------------------------- /snap_uidemo/quicreator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/quicreator.png -------------------------------------------------------------------------------- /snap_uidemo/quidemo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/quidemo.gif -------------------------------------------------------------------------------- /snap_uidemo/quistyle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/quistyle.gif -------------------------------------------------------------------------------- /snap_uidemo/uidemo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo1.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo10.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo11.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo12.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo13.gif -------------------------------------------------------------------------------- /snap_uidemo/uidemo14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo14.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo15.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo16.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo17.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo18.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo19.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo2.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo20.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo21.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo22.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo23.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo24.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo25.gif -------------------------------------------------------------------------------- /snap_uidemo/uidemo25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo25.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo26.gif -------------------------------------------------------------------------------- /snap_uidemo/uidemo26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo26.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo3.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo4.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo6.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo7.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo8.png -------------------------------------------------------------------------------- /snap_uidemo/uidemo9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_uidemo/uidemo9.png -------------------------------------------------------------------------------- /snap_video_call/video_call.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_aa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_aa.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_ab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_ab.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_linux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_linux.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_linux_audio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_linux_audio.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_screen.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_vlc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_vlc.jpg -------------------------------------------------------------------------------- /snap_video_call/video_call_web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_call/video_call_web.jpg -------------------------------------------------------------------------------- /snap_video_camera/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1. 前言说明 3 | 1. 如果采用内核qcamera或者v4l2则不需要依赖任何第三方库。 4 | 2. 如果采用内核ffmpeg在编译好之后记得将动态库文件比如dll_ffmpeg4下面的所有文件复制到可执行文件同一目录。 5 | 3. 编译后生成的可执行文件在当前项目源码下的bin目录中。 6 | 4. 动态库区分32和64位,对应动态库目录后面有_64字样表示是64位的库。 7 | 5. 动态库下载链接: https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA 提取码: ujm7 8 | 6. 项目作品大全: https://qtchina.blog.csdn.net/article/details/97565652 9 | 10 | ## 2. 其他说明 11 | 1. 如果选择 QCamera 方案的话建议用Qt6,有巨大的改进和提升,由Qt公司CTO亲自操刀编写。 12 | 2. 通用性最强可以选择 ffmpeg 方案,比如windows、linux、嵌入式linux等系统。 13 | 3. 嵌入式linux系统或者linux系统推荐用 v4l2 方案,无需任何依赖,纯v4l2框架代码实现。 14 | 4. 嵌入式linux系统如果要求流畅度推荐用ffmpeg方案,因为有缓存机制,ffmpeg方案处理的最好。 15 | 5. 采用ffmpeg方案如果官网没有提供对应的二进制包,需要自行编译,编译很简单,不要怕,就打几行命令就ok。 16 | 17 | ## 3. 功能特点 18 | 1. 同时支持 qcamera、ffmpeg、v4l2 三种内核解析本地摄像头。 19 | 2. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出。 20 | 3. 支持自动搜索和指定设备两种模式,自动搜索模式下会将搜索到的第一个设备作为当前设备打开。 21 | 4. 支持同时打开多路设备,亲测4路,受限于具体的环境比如带宽。 22 | 5. 支持自动重连,默认开启,失败后会自动重新搜索和尝试打开。 23 | 6. ffmpeg方案、v4l2方案都支持回调模式(采集后转成QImage绘制)和句柄模式(采集后YUV数据GPU绘制,性能高)。 24 | 7. 视频显示位置自动调整算法,当视频分辨率超过显示控件大小则等比例缩放居中显示,不超过则原尺寸居中显示,还可设置拉伸填充显示。(自动调整、等比例缩放、拉伸填充)。 25 | 8. 可选不同的分辨率来打开摄像头,支持 160x120、320x240、640x480、800x600、1280x720、1280x960、1920x1080 等。 26 | 9. 可选不同的帧率来打开摄像头,支持 0(采用默认值)、5、、10、15、20、25、30 等。 27 | 10. 支持抓拍截图,传入文件名则自动保存截图文件,不传入则将图片数据QImage信号发出。 28 | 11. 提供函数接口 开始播放play、停止播放stop、暂停播放pause、继续播放next。 29 | 12. 支持动态热插拔加载,包括自动读取所有设备名称到下拉框。 30 | 13. 支持录像文件存储,提供开始录像recordStart、暂停录像recordPause、停止录像recordStop 等函数。 31 | 14. 提供二维码示例,自动采集画面识别二维码,支持自动将识别到的二维码重新生成大图。 32 | 15. 二维码识别支持设置热点区域,对该区域内的图片进行裁切并识别,在大分辨率图像采集的时候非常有用,提升速度和效率。 33 | 16. 支持选择图片文件解析二维码,手动输入文本内容生成二维码。 34 | 17. 提供图片传输示例,自动将打开的摄像头视频实时传输出去,服务器端接收后解析显示。此方案可以作为将本地的摄像头实时画面远程传输,比如嵌入式板子上的摄像头画面传输到PC端显示。 35 | 18. 支持等比例拉伸填充显示,画面宽高小于显示控件的宽高则以原视频大小为准,大于则按照显示控件的尺寸等比例缩放居中。 36 | 19. 视频控件悬浮条自带开始和停止录像切换、声音静音切换、抓拍截图、关闭视频等功能。 37 | 20. 音频组件支持声音波形值数据解析,可以根据该值绘制波形曲线和柱状声音条,默认提供了声音振幅信号。 38 | 21. 代码框架和结构优化到极致,性能彪悍,持续迭代更新升级。 39 | 22. 源码支持Qt4、Qt5、Qt6,兼容所有版本。 40 | 41 | ## 4. 视频控件 42 | 1. 可动态添加任意多个osd标签信息,标签信息包括名字、是否可见、字号大小、文本文字、文本颜色、背景颜色、标签图片、标签坐标、标签格式(文本、日期、时间、日期时间、图片)、标签位置(左上角、左下角、右上角、右下角、居中、自定义坐标)。 43 | 2. 可动态添加任意多个图形信息,比如人工智能算法解析后的图形区域信息直接发给视频控件即可。图形信息支持任意形状,直接绘制在原始图片上,采用绝对坐标。 44 | 3. 图形信息包括名字、边框大小、边框颜色、背景颜色、矩形区域、路径集合、点坐标集合等。 45 | 4. 每个图形信息都可指定三种区域中的一种或者多种,指定了的都会绘制。 46 | 5. 内置悬浮条控件,悬浮条位置支持顶部、底部、左侧、右侧。 47 | 6. 悬浮条控件参数包括边距、间距、背景透明度、背景颜色、文本颜色、按下颜色、位置、按钮图标代码集合、按钮名称标识集合、按钮提示信息集合。 48 | 7. 悬浮条控件一排工具按钮可自定义,通过结构体参数设置,图标可选图形字体还是自定义图片。 49 | 8. 悬浮条按钮内部实现了录像切换、抓拍截图、静音切换、关闭视频等功能,也可以自行在源码中增加自己对应的功能。 50 | 9. 悬浮条按钮对应实现了功能的按钮,有对应图标切换处理,比如录像按钮按下后会切换到正在录像中的图标,声音按钮切换后变成静音图标,再次切换还原。 51 | 10. 悬浮条按钮单击后都用名称唯一标识作为信号发出,可以自行关联响应处理。 52 | 11. 悬浮条空白区域可以显示提示信息,默认显示当前视频分辨率大小,可以增加帧率、码流大小等信息。 53 | 12. 视频控件参数包括边框大小、边框颜色、焦点颜色、背景颜色(默认透明)、文字颜色(默认全局文字颜色)、填充颜色(视频外的空白处填充黑色)、背景文字、背景图片(如果设置了图片优先取图片)、是否拷贝图片、缩放显示模式(自动调整、等比缩放、拉伸填充)、视频显示模式(句柄、绘制、GPU)、启用悬浮条、悬浮条尺寸(横向为高度、纵向为宽度)、悬浮条位置(顶部、底部、左侧、右侧)。 54 | -------------------------------------------------------------------------------- /snap_video_camera/video_camera1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera1.jpg -------------------------------------------------------------------------------- /snap_video_camera/video_camera2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera2.jpg -------------------------------------------------------------------------------- /snap_video_camera/video_camera3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera3.jpg -------------------------------------------------------------------------------- /snap_video_camera/video_camera4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera4.jpg -------------------------------------------------------------------------------- /snap_video_camera/video_camera5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera5.jpg -------------------------------------------------------------------------------- /snap_video_camera/video_camera6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_camera/video_camera6.jpg -------------------------------------------------------------------------------- /snap_video_demo/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1. 前言说明 3 | 1. 编译好之后记得将动态库文件比如dll_ffmpeg4(如果是vlc内核则是dll_vlc3/举一反三其他内核都是如此)下面的所有文件复制到可执行文件同一目录。 4 | 2. 非windows系统下使用ffmpeg内核,可以参考core_videoffmpeg目录下的说明文件,linux系统和mac系统上库的用法.txt / 编译阶段linux系统ffmpeg库放置位置.jpg / 运行阶段linux系统ffmpeg库放置位置。 5 | 3. **编译后生成的可执行文件在当前项目源码下的bin目录中,和core_videobase同级目录。** 6 | 4. 动态库严格区分32和64位,对应动态库目录后面有64字样表示是64位的库。如果用的是64位的Qt套件就选择64位的库。 7 | 5. 动态库下载链接:https://pan.baidu.com/s/13LDRu6mXC6gaADtrGprNVA 提取码: ujm7 8 | 6. 如果需要滤镜支持比如文字水印还需要将源码下的 wenquanyi.ttf 字体文件复制到可执行文件同一目录。 9 | 7. 项目作品大全:https://qtchina.blog.csdn.net/article/details/97565652。 10 | 8. 代码文件说明:[https://feiyangqingyun.gitee.io/qwidgetdemo/video_system/#113313-模块-corevideoffmpeg](https://feiyangqingyun.gitee.io/qwidgetdemo/video_system/#113313-模块-corevideoffmpeg) 11 | 9. **地址格式说明:[https://feiyangqingyun.gitee.io/qwidgetdemo/video_system/#07-视频格式](https://feiyangqingyun.gitee.io/qwidgetdemo/video_system/#07-视频格式)** 12 | 13 | ## 2. 使用方法 14 | ### 2.0 特别提示 15 | - 每一种内核就是独立的完整的模块,可以独立拿出去使用。 16 | - 拷贝的pri组件建议放到你的项目的同级目录,这样方便区分管理,也可以放到你的项目的目录下,但是引入的时候记得做路径调整。比如代码文件的上级目录是 $$PWD/../ ,目录下就是 $$PWD/ 。 17 | - 使用对应的内核需要在pro中增加对应的内核定义,比如ffmpeg模块需要在pro中增加 DEFINES += ffmpeg 。 18 | - 具体的参数含义可以参见结构体定义(最重要的就是VideoPara和WidgetPara),以及完整的使用示例。 19 | - 模块都有动态库依赖,编译完成记得将动态库拷贝到可执行文件同一目录下即可。 20 | - 如果是视频流,想要极低延迟,vlc内核可以将缓存大小调小到0.3s,ffmpeg内核可以选择解码策略为最快速度。 21 | 22 | ### 2.1 内核ffmpeg 23 | 1. 将内核相关文件 core_audio、core_video、core_videobase、core_videoffmpeg 拷贝放到对应目录。 24 | 2. 在你的项目的pro文件引入上面的组件并增加对应内核定义。../表示上级目录。 25 | ```cpp 26 | DEFINES += ffmpeg videoffmpeg ffmpeg4 27 | include($$PWD/../core_audio/core_audio.pri) 28 | include($$PWD/../core_video/core_video.pri) 29 | include($$PWD/../core_videobase/core_videobase.pri) 30 | include($$PWD/../core_videoffmpeg/core_videoffmpeg.pri) 31 | ``` 32 | 3. 使用代码 33 | ```cpp 34 | #include "mainwindow.h" 35 | #include "videowidgetx.h" 36 | #include 37 | 38 | int main(int argc, char *argv[]) 39 | { 40 | QApplication a(argc, argv); 41 | 42 | VideoWidget w; 43 | w.resize(800, 600); 44 | VideoPara para = w.getVideoPara(); 45 | para.videoCore = VideoCore_FFmpeg; 46 | w.setVideoPara(para); 47 | w.show(); 48 | w.open("f:/mp4/push/1.mp4"); 49 | 50 | return a.exec(); 51 | } 52 | ``` 53 | 54 | ### 2.2 内核mdk 55 | 1. 将内核相关文件 core_videobase、core_video、core_videomdk 拷贝放到对应目录。 56 | 2. 在你的项目的pro文件引入上面的组件并增加对应内核定义。 57 | ```cpp 58 | DEFINES += mdkx 59 | include($$PWD/../core_video/core_video.pri) 60 | include($$PWD/../core_videobase/core_videobase.pri) 61 | include($$PWD/../core_videomdk/core_videomdk.pri) 62 | ``` 63 | 3. 使用代码 64 | ```cpp 65 | #include "mainwindow.h" 66 | #include "videowidgetx.h" 67 | #include 68 | 69 | int main(int argc, char *argv[]) 70 | { 71 | QApplication a(argc, argv); 72 | 73 | VideoWidget w; 74 | w.resize(800, 600); 75 | w.show(); 76 | qApp->processEvents(); 77 | 78 | VideoPara para = w.getVideoPara(); 79 | para.videoCore = VideoCore_Mdk; 80 | para.videoUrl = "f:/mp4/1.mp4"; 81 | w.setVideoPara(para); 82 | if (w.init()) { 83 | w.play(); 84 | } 85 | 86 | return a.exec(); 87 | } 88 | ``` 89 | 90 | ## 3. 基础功能 91 | 1. 支持各种音频视频文件格式,比如mp3、wav、mp4、asf、rm、rmvb、mkv等。 92 | 2. 支持本地摄像头设备和本地桌面采集,支持多设备和多屏幕。 93 | 3. 支持各种视频流格式,比如rtp、rtsp、rtmp、http、udp等。 94 | 4. 本地音视频文件和网络音视频文件,自动识别文件长度、播放进度、音量大小、静音状态等。 95 | 5. 文件可以指定播放位置、调节音量大小、设置静音状态等。 96 | 6. 支持倍速播放文件,可选0.5倍、1.0倍、2.5倍、5.0倍等速度,相当于慢放和快放。 97 | 7. 支持开始播放、停止播放、暂停播放、继续播放。 98 | 8. 支持抓拍截图,可指定文件路径,可选抓拍完成是否自动显示预览。 99 | 9. 支持录像存储,手动开始录像、停止录像,部分内核支持暂停录像后继续录像,跳过不需要录像的部分。 100 | 10. 支持无感知切换循环播放、自动重连等机制。 101 | 11. 提供播放成功、播放完成、收到解码图片、收到抓拍图片、视频尺寸变化、录像状态变化等信号。 102 | 12. 多线程处理,一个解码一个线程,不卡主界面。 103 | 104 | ## 4. 特色功能 105 | 1. 同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6)、ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6)、vlc内核(vlc2/vlc3)、mpv内核(mpv1/mp2)、mdk内核、海康sdk、easyplayer内核等。 106 | 2. 非常完善的多重基类设计,新增一种解码内核只需要实现极少的代码量,就可以应用整套机制,极易拓展。 107 | 3. 同时支持多种画面显示策略,自动调整(原始分辨率小于显示控件尺寸则按照原始分辨率大小显示,否则等比缩放)、等比缩放(永远等比缩放)、拉伸填充(永远拉伸填充)。所有内核和所有视频显示模式下都支持三种画面显示策略。 108 | 4. 同时支持多种视频显示模式,句柄模式(传入控件句柄交给对方绘制控制)、绘制模式(回调拿到数据后转成QImage用QPainter绘制)、GPU模式(回调拿到数据后转成yuv用QOpenglWidget绘制)。 109 | 5. 支持多种硬件加速类型,ffmpeg可选dxva2、d3d11va等,vlc可选any、dxva2、d3d11va,mpv可选auto、dxva2、d3d11va,mdk可选dxva2、d3d11va、cuda、mft等。不同的系统环境有不同的类型选择,比如linux系统有vaapi、vdpau,macos系统有videotoolbox。 110 | 6. 解码线程和显示窗体分离,可指定任意解码内核挂载到任意显示窗体,动态切换。 111 | 7. 支持共享解码线程,默认开启并且自动处理,当识别到相同的视频地址,共享一个解码线程,在网络视频环境中可以大大节约网络流量以及对方设备的推流压力。国内顶尖视频厂商均采用此策略。这样只要拉一路视频流就可以共享到几十个几百个通道展示。 112 | 8. 自动识别视频旋转角度并绘制,比如手机上拍摄的视频一般是旋转了90度的,播放的时候要自动旋转处理,不然默认是倒着的。 113 | 9. 自动识别视频流播放过程中分辨率的变化,在视频控件上自动调整尺寸。比如摄像机可以在使用过程中动态配置分辨率,当分辨率改动后对应视频控件也要做出同步反应。 114 | 10. 音视频文件无感知自动切换循环播放,不会出现切换期间黑屏等肉眼可见的切换痕迹。 115 | 11. 视频控件同时支持任意解码内核、任意画面显示策略、任意视频显示模式。 116 | 12. 视频控件悬浮条同时支持句柄、绘制、GPU三种模式,非绝对坐标移来移去。 117 | 13. 本地摄像头设备支持指定设备名称、分辨率、帧率进行播放。 118 | 14. 本地桌面采集支持设定采集区域、偏移值、指定桌面索引、帧率、多个桌面同时采集等。还支持指定窗口标题采集固定窗口。 119 | 15. 录像文件同时支持打开的视频文件、本地摄像头、本地桌面、网络视频流等。 120 | 16. 瞬间响应打开和关闭,无论是打开不存在的视频或者网络流,探测设备是否存在,读取中的超时等待,收到关闭指令立即中断之前的操作并响应。 121 | 17. 支持打开各种图片文件,支持本地音视频文件拖曳播放。 122 | 18. 视频流通信方式可选tcp/udp,有些设备可能只提供了某一种协议通信比如tcp,需要指定该种协议方式打开。 123 | 19. 可设置连接超时时间(视频流探测用的超时时间)、读取超时时间(采集过程中的超时时间)。 124 | 20. 支持逐帧播放,提供上一帧/下一帧函数接口,可以逐帧查阅采集到的图像。 125 | 21. 音频文件自动提取专辑信息比如标题、艺术家、专辑、专辑封面,自动显示专辑封面。 126 | 22. 视频响应极低延迟0.2s左右,极速响应打开视频流0.5s左右,专门做了优化处理。 127 | 23. 支持H264/H265编码(现在越来越多的监控摄像头是H265视频流格式)生成视频文件,内部自动识别切换编码格式。 128 | 24. 支持用户信息中包含特殊字符(比如用户信息中包含+#@等字符)的视频流播放,内置解析转义处理。 129 | 25. 支持滤镜,各种水印及图形效果,支持多个水印和图像,可以将OSD标签信息和各种图形信息写入到MP4文件。 130 | 26. 支持视频流中的各种音频格式,AAC、PCM、G.726、G.711A、G.711Mu、G.711ulaw、G.711alaw、MP2L2等都支持,推荐选择AAC兼容性跨平台性最好。 131 | 27. 内核ffmpeg采用纯qt+ffmpeg解码,非sdl等第三方绘制播放依赖,gpu绘制采用qopenglwidget,音频播放采用qaudiooutput。 132 | 28. 内核ffmpeg和内核mdk支持安卓,其中mdk支持安卓硬解码,性能非常凶残。 133 | 29. 可以切换音视频轨道,也就是节目通道,可能ts文件带了多个音视频节目流,可以分别设置要播放哪一个,可以播放前设置好和播放过程中动态设置。 134 | 30. 可以设置视频旋转角度,可以播放前设置好和播放过程中动态改变。 135 | 31. 视频控件悬浮条自带开始和停止录像切换、声音静音切换、抓拍截图、关闭视频等功能。 136 | 32. 音频组件支持声音波形值数据解析,可以根据该值绘制波形曲线和柱状声音条,默认提供了声音振幅信号。 137 | 33. 标签和图形信息支持三种绘制方式,绘制到遮罩层、绘制到图片、源头绘制(对应信息可以存储到文件)。 138 | 34. 通过传入一个url地址,该地址可以带上通信协议、分辨率、帧率等信息,无需其他设置。 139 | 35. 保存视频到文件支持三种策略,自动处理、仅限文件、全部转码,转码策略支持自动识别、转264、转265,编码保存支持指定分辨率缩放或者等比例缩放。比如对保存文件体积有要求可以指定缩放后再存储。 140 | 36. 支持加密保存文件和解密播放文件,可以指定秘钥文本。 141 | 37. 提供的监控布局类支持64通道同时显示,还支持各种异型布局,比如13通道,手机上6行2列布局。各种布局可以自由定义。 142 | 38. 支持电子放大,在悬浮条切换到电子放大模式,在画面上选择需要放大的区域,选取完毕后自动放大,再次切换放大模式可以复位。 143 | 39. 各组件中极其详细的打印信息提示,尤其是报错信息提示,封装的统一打印格式。针对现场复杂的设备环境测试极其方便有用,相当于精确定位到具体哪个通道哪个步骤出错。 144 | 40. 同时提供了简单示例、视频播放器、多画面视频监控、监控回放、逐帧播放、多屏渲染等单独窗体示例,专门演示对应功能如何使用。 145 | 41. 监控回放可选不同厂家类型、回放时间段、用户信息、指定通道。支持切换回放进度。 146 | 42. 可以从声卡设备下拉框选择声卡播放声音,提供对应的切换声卡函数接口。 147 | 43. 支持编译到手机app使用,提供了专门的手机app布局界面,可以作为手机上的视频监控使用。 148 | 44. 代码框架和结构优化到最优,性能强悍,注释详细,持续迭代更新升级。 149 | 45. 源码支持windows、linux、mac、android等,支持各种国产linux系统,包括但不限于统信UOS/中标麒麟/银河麒麟等。还支持嵌入式linux。 150 | 46. 源码支持Qt4、Qt5、Qt6,兼容所有版本。 151 | 152 | ## 5. 视频控件 153 | 1. 可动态添加任意多个osd标签信息,标签信息包括名字、是否可见、字号大小、文本文字、文本颜色、背景颜色、标签图片、标签坐标、标签格式(文本、日期、时间、日期时间、图片)、标签位置(左上角、左下角、右上角、右下角、居中、自定义坐标)。 154 | 2. 可动态添加任意多个图形信息,比如人工智能算法解析后的图形区域信息直接发给视频控件即可。图形信息支持任意形状,直接绘制在原始图片上,采用绝对坐标。 155 | 3. 图形信息包括名字、边框大小、边框颜色、背景颜色、矩形区域、路径集合、点坐标集合等。 156 | 4. 每个图形信息都可指定三种区域中的一种或者多种,指定了的都会绘制。 157 | 5. 内置悬浮条控件,悬浮条位置支持顶部、底部、左侧、右侧。 158 | 6. 悬浮条控件参数包括边距、间距、背景透明度、背景颜色、文本颜色、按下颜色、位置、按钮图标代码集合、按钮名称标识集合、按钮提示信息集合。 159 | 7. 悬浮条控件一排工具按钮可自定义,通过结构体参数设置,图标可选图形字体还是自定义图片。 160 | 8. 悬浮条按钮内部实现了录像切换、抓拍截图、静音切换、关闭视频等功能,也可以自行在源码中增加自己对应的功能。 161 | 9. 悬浮条按钮对应实现了功能的按钮,有对应图标切换处理,比如录像按钮按下后会切换到正在录像中的图标,声音按钮切换后变成静音图标,再次切换还原。 162 | 10. 悬浮条按钮单击后都用名称唯一标识作为信号发出,可以自行关联响应处理。 163 | 11. 悬浮条空白区域可以显示提示信息,默认显示当前视频分辨率大小,可以增加帧率、码流大小等信息。 164 | 12. 视频控件参数包括边框大小、边框颜色、焦点颜色、背景颜色(默认透明)、文字颜色(默认全局文字颜色)、填充颜色(视频外的空白处填充黑色)、背景文字、背景图片(如果设置了图片优先取图片)、是否拷贝图片、缩放显示模式(自动调整、等比缩放、拉伸填充)、视频显示模式(句柄、绘制、GPU)、启用悬浮条、悬浮条尺寸(横向为高度、纵向为宽度)、悬浮条位置(顶部、底部、左侧、右侧)。 165 | 166 | ## 6. 特别说明 167 | 1. 共享解码线程不支持句柄模式,必须是绘制模式或者GPU模式。目前支持共享解码线程的有qmedia内核绘制模式、ffmpeg内核绘制模式、ffmpeg内核GPU模式、vlc内核绘制模式、海康sdk内核绘制模式、海康sdk内核GPU模式等。 168 | 2. vlc和mpv内核对超过12路通道支持不友好,性能急剧暴跌。因为播放器的设计初衷是在电脑上同时播放1-8路视频,超过8路的场景不建议使用vlc和mpv内核。 169 | 3. 跨平台最好的内核是ffmpeg内核,强烈推荐此内核。 170 | 4. 如果只是当普通播放器在本地使用,推荐mpv和vlc内核。 171 | 5. 如果嵌入式板子上厂家移植好了硬解码到QMediaPlayer模块,推荐qmedia内核。 172 | 6. 视频显示模式受限于具体的解码内核支持,比如目前mpv内核只有句柄模式,vlc内核只有句柄和绘制模式,ffmpeg内核只有绘制和GPU模式,海康内核支持三种模式。 173 | 7. 视频控件支持的图形信息,只支持绘制模式,只有绘制模式才能把图形信息绘制到原始图片上。 174 | 8. Qt6.0到Qt6.2之间的版本由于缺失多媒体模块所以无法使用qmedia内核。 175 | 9. ffmpeg内核最快速度解码策略:速度优先并且不做音视频同步,打开不等待缓存,一般在特定视频流环境中需要,对响应速度有要求的。 176 | 10. vlc内核如果同时打开多路视频流建议缓存设置大一些,不然CPU占用极高容易崩溃。 177 | 11. mpv内核有内存泄漏迹象,和mpv动态库有关。 178 | 12. linux安装 apt-get install gstreamer1.0-libav。https://blog.csdn.net/MoonShapedPool/article/details/82835565 179 | 13. 画面选择拉伸填充标签效果最佳,画面选择自动调整图形效果最佳。 180 | 14. Qt4中音频组件不能调节声音大小。 181 | 15. Qt5.6以下的多媒体模块视频没有图像,QAbstractVideoSurface也获取不到图像。 182 | 16. vlc内核和mpv内核在保存阶段不建议切换播放进度,vlc内部强制不允许切换,mpv切换了会保存错乱。 183 | 17. ffmpeg内核支持保存阶段切换播放进度,因为底层是自己写的代码处理的保存,做了特殊处理。 184 | 18. ffmpeg内核32位不支持超过14路同时录制,原因未知,建议选择64位。 185 | 19. qmedia内核暂时不支持保存文件,有对应的类但是Qt底层没实现,坐等他实现。 -------------------------------------------------------------------------------- /snap_video_demo/video_demo1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo1.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo2.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo3.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo4.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo5.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo6.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo7.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo_android1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo_android1.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo_android2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo_android2.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo_android3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo_android3.jpg -------------------------------------------------------------------------------- /snap_video_demo/video_demo_android4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/video_demo_android4.jpg -------------------------------------------------------------------------------- /snap_video_demo/大华16通道主码流共享解码_大华客户端.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/大华16通道主码流共享解码_大华客户端.jpg -------------------------------------------------------------------------------- /snap_video_demo/大华16通道主码流共享解码_本软件.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/大华16通道主码流共享解码_本软件.jpg -------------------------------------------------------------------------------- /snap_video_demo/大华单通道主码流对比.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/大华单通道主码流对比.jpg -------------------------------------------------------------------------------- /snap_video_demo/大华客户端开启硬解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/大华客户端开启硬解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/本软件4通道子码流不共享解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/本软件4通道子码流不共享解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/本软件4通道子码流共享解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/本软件4通道子码流共享解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/本软件64通道子码流共享解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/本软件64通道子码流共享解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/测试电脑配置.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/测试电脑配置.jpg -------------------------------------------------------------------------------- /snap_video_demo/海康16通道主码流共享解码_本软件.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/海康16通道主码流共享解码_本软件.jpg -------------------------------------------------------------------------------- /snap_video_demo/海康16通道主码流共享解码_海康客户端.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/海康16通道主码流共享解码_海康客户端.jpg -------------------------------------------------------------------------------- /snap_video_demo/海康单通道主码流对比.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/海康单通道主码流对比.jpg -------------------------------------------------------------------------------- /snap_video_demo/海康客户端开启硬解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/海康客户端开启硬解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/视频4K不开硬解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/视频4K不开硬解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/视频4K开启d3d11va硬解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/视频4K开启d3d11va硬解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/视频4K开启dxva2硬解码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/视频4K开启dxva2硬解码.jpg -------------------------------------------------------------------------------- /snap_video_demo/视频录制结果.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/视频录制结果.jpg -------------------------------------------------------------------------------- /snap_video_demo/视频录制菜单.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_demo/视频录制菜单.jpg -------------------------------------------------------------------------------- /snap_video_face/QQ截图20180905095651.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20180905095651.png -------------------------------------------------------------------------------- /snap_video_face/QQ截图20180905095723.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20180905095723.png -------------------------------------------------------------------------------- /snap_video_face/QQ截图20200504195214.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20200504195214.jpg -------------------------------------------------------------------------------- /snap_video_face/QQ截图20200504195249.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20200504195249.jpg -------------------------------------------------------------------------------- /snap_video_face/QQ截图20200504195311.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20200504195311.jpg -------------------------------------------------------------------------------- /snap_video_face/QQ截图20200504195330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20200504195330.jpg -------------------------------------------------------------------------------- /snap_video_face/QQ截图20200504195355.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/QQ截图20200504195355.jpg -------------------------------------------------------------------------------- /snap_video_face/video_face1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face1.gif -------------------------------------------------------------------------------- /snap_video_face/video_face2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face2.gif -------------------------------------------------------------------------------- /snap_video_face/video_face4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face4.gif -------------------------------------------------------------------------------- /snap_video_face/video_face5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face5.gif -------------------------------------------------------------------------------- /snap_video_face/video_face5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face5.jpg -------------------------------------------------------------------------------- /snap_video_face/video_face6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_face/video_face6.gif -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_1.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_2.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_3.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_4.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_5.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_6.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_device.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_device.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_dhipc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_dhipc.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_dhnvr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_dhnvr.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_hkipc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_hkipc.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_hknvr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_hknvr.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_hwipc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_hwipc.jpg -------------------------------------------------------------------------------- /snap_video_gb28181/video_gb28181_ysnvr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_gb28181/video_gb28181_ysnvr.jpg -------------------------------------------------------------------------------- /snap_video_image/video_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_image/video_image.jpg -------------------------------------------------------------------------------- /snap_video_image/video_image1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_image/video_image1.gif -------------------------------------------------------------------------------- /snap_video_image/video_image2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_image/video_image2.gif -------------------------------------------------------------------------------- /snap_video_image/video_image_wasm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_image/video_image_wasm.png -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif0.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif1.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif2.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif3.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif4.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif_app1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif_app1.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif_app2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif_app2.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif_app3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif_app3.jpg -------------------------------------------------------------------------------- /snap_video_onvif/video_onvif_app4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_onvif/video_onvif_app4.jpg -------------------------------------------------------------------------------- /snap_video_push/video_push_config.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_push/video_push_config.jpg -------------------------------------------------------------------------------- /snap_video_push/video_push_device.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_push/video_push_device.jpg -------------------------------------------------------------------------------- /snap_video_push/video_push_file.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_push/video_push_file.jpg -------------------------------------------------------------------------------- /snap_video_push/video_push_net.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_push/video_push_net.jpg -------------------------------------------------------------------------------- /snap_video_push/video_push_preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_video_push/video_push_preview.jpg -------------------------------------------------------------------------------- /snap_web/snap_android.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_android.jpg -------------------------------------------------------------------------------- /snap_web/snap_bigscreen_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_bigscreen_base.png -------------------------------------------------------------------------------- /snap_web/snap_chrom1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_chrom1.jpg -------------------------------------------------------------------------------- /snap_web/snap_chrom2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_chrom2.jpg -------------------------------------------------------------------------------- /snap_web/snap_demo1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_demo1.gif -------------------------------------------------------------------------------- /snap_web/snap_demo2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_demo2.gif -------------------------------------------------------------------------------- /snap_web/snap_demo3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_demo3.gif -------------------------------------------------------------------------------- /snap_web/snap_edge1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_edge1.jpg -------------------------------------------------------------------------------- /snap_web/snap_edge2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_edge2.jpg -------------------------------------------------------------------------------- /snap_web/snap_firefox1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_firefox1.jpg -------------------------------------------------------------------------------- /snap_web/snap_uidemo24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_uidemo24.jpg -------------------------------------------------------------------------------- /snap_web/snap_uidemo25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_uidemo25.jpg -------------------------------------------------------------------------------- /snap_web/snap_uidemo26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_web/snap_uidemo26.jpg -------------------------------------------------------------------------------- /snap_yutian/audiorecord.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/audiorecord.gif -------------------------------------------------------------------------------- /snap_yutian/install1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/install1.gif -------------------------------------------------------------------------------- /snap_yutian/install2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/install2.gif -------------------------------------------------------------------------------- /snap_yutian/install3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/install3.gif -------------------------------------------------------------------------------- /snap_yutian/pay1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/pay1.png -------------------------------------------------------------------------------- /snap_yutian/pay2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/pay2.png -------------------------------------------------------------------------------- /snap_yutian/pdfreader1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/pdfreader1.gif -------------------------------------------------------------------------------- /snap_yutian/pdfreader2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/pdfreader2.gif -------------------------------------------------------------------------------- /snap_yutian/pdfreader3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/pdfreader3.gif -------------------------------------------------------------------------------- /snap_yutian/radar1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar1.gif -------------------------------------------------------------------------------- /snap_yutian/radar10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar10.png -------------------------------------------------------------------------------- /snap_yutian/radar2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar2.gif -------------------------------------------------------------------------------- /snap_yutian/radar3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar3.gif -------------------------------------------------------------------------------- /snap_yutian/radar4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar4.gif -------------------------------------------------------------------------------- /snap_yutian/radar5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar5.gif -------------------------------------------------------------------------------- /snap_yutian/radar6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar6.gif -------------------------------------------------------------------------------- /snap_yutian/radar7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar7.gif -------------------------------------------------------------------------------- /snap_yutian/radar8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar8.gif -------------------------------------------------------------------------------- /snap_yutian/radar9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiyangqingyun/QWidgetExe/aac0f11dc1a42418c786798ef3b13a51d7add89c/snap_yutian/radar9.png --------------------------------------------------------------------------------