Qt
文章平均质量分 66
Jason188080501
这个作者很懒,什么都没留下…
展开
-
Qt:基于QQuickFramebufferObject显示QImage到QML中
通过FBO,高效的显示一个QImage到QML中原创 2024-03-04 17:01:20 · 1706 阅读 · 2 评论 -
Qt:工欲善其事,必先利其器。在Qt中使用Sentry在线收集日志
引言工欲善其事,必先利其器。软件工程越来越复杂,一定要依赖现代化的方式,帮助我们快速定位,分析问题。这里我们从日志相关3大功能,log、minidump和performance展开,讲述如何在Qt中使用Sentry在线收集日志关于SentrySentry平台,从简单的说是一个在线日志收集平台。从复杂说的可以帮我们处理从bug发生、定位、源码追溯、bug管理、修复、追踪,甚至是关联git和ci等一系列复杂流程。使用Sentry是为了帮助我们从繁琐、复杂的日志收集工作中解放出来,提升开发效率。同时S原创 2020-12-24 10:00:03 · 1462 阅读 · 0 评论 -
Qt:靠谱点了!基于WebAssembly开发网页端
we原创 2020-07-21 11:42:14 · 6582 阅读 · 3 评论 -
Qt:QSerialPort的多线程扩展
Qt:QSerialPort的多线程扩展原创 2015-01-15 18:06:52 · 7194 阅读 · 1 评论 -
Qt:在程序中获取源码被编译的日期和时间
注意,编译器要提供 __DATE__ 和 __TIME__ 这两个关键字,才可以用下面的代码 代码比较简单,只有两行,分别获取日期和时间static const QDate buildDate = QLocale( "es" ).toDate( QString( __DATE__ ).insert( 3, "." ).toLower(), "MMM dd yyyy");static const原创 2016-11-10 10:24:28 · 5100 阅读 · 3 评论 -
Qt:二维码的解析/扫描(Zxing)与生成(qrencode)
对Zxing和qrencode的二次封装二维码识别部分底层为Zxing生成部分底层为qrencode原创 2015-08-22 14:05:57 · 9352 阅读 · 9 评论 -
Qt:通过QML Profiler分析程序性能问题
对于一个程序的开发,性能优化是开发中的一个重要步骤。我们肯定不希望开发出来的程序表现出卡顿,最好是处处流畅,丝滑般的体验。原创 2017-03-15 15:41:35 · 9110 阅读 · 0 评论 -
Qt:基于Qt开发的轻量级HTTP/HTTPS服务器
JQHttpServer是基于Qt开发的轻量级HTTP服务器,目前支持GET和POST两个协议。底层有TcpSocket和LocalSocket两个版本,方便使用。用到的Qt库有:corenetworkconcurrenttestlib(测试用,运行不需要)理论上可以部署到任何Qt支持的平台上。推荐使用Linux系统或者Unix系统,因为在5.7后,Qt更换了Unix相关系统的底层模型,从原创 2016-07-05 14:27:42 · 36060 阅读 · 26 评论 -
Qt:通过预解释和预读取,大幅度提升图片加载速度
在我以往的开发中,尤其是嵌入式,图片的加载一直是一个头疼的问题。图片大了,加载就很慢,在嵌入式上,一个1280*1080的图片,加载可能要好几百毫秒。也就是说加载一个背景,就可能要花去几百毫秒,还不包括其他各种图片。 在用尽各种奇妙的方法后,今天终于找到一个根治的方法。赶紧来和大家分享下。首先,我们要知道一个图片的加载,时间到底消耗在哪。一般来说,一个图片加载,可以分为两步,第一步是从硬...原创 2017-03-28 11:15:58 · 8841 阅读 · 3 评论 -
Qt:使用ShaderEffectSource对Item拍摄"UI快照",提升渲染效率
在上一篇中,提到了如何使用QML Profiler对程序性能问题进行分析 http://blog.csdn.net/wsj18808050/article/details/62226574而这片文章,就开始我们第一个实战。这个实战,对应一个很简单并且很常见的需求,就是我们有一个静态(固定内容)的图像,但是这个图像需要一直显示在那里,也许我们还需要对这个图像进行动画。这时候,根据这个图像本身的复杂程原创 2017-03-19 16:03:30 · 2548 阅读 · 1 评论 -
Qt:5.8新特性,qmlc使用以及效果
关于qmlc5.8在昨天终于发布了,在很艰辛的下载后,终于在今天用上了。 在5.8各个新特性中,我特别看重qmlc这个。那么qmlc是个什么东西呢,官方的描述是这样的Implemented caching of code and data structures generated from .qml and .js files to disk, reducing start-up time and原创 2017-01-24 21:44:53 · 12967 阅读 · 7 评论 -
Qt:5.8新特新,QtLite使用方法,以及缩减应用体积的效果
Qt到了5.8版本,终于迎来了一个重要功能,就是QtLite 此功能可谓是千呼万唤始出来,饱受诟病的体积问题,终于可以在一定程度上得到解决。那么QtLite到底是什么呢,按照官方原话,是Configurability (Qt Lite Project)Qt 5.8 comes with a rewritten configuration system that allows for easy c原创 2017-02-20 19:19:54 · 15803 阅读 · 18 评论 -
Qt:QML静态编译大坑之import用法
在使用静态编译的时候,有一个很重的一点,就是关于import比如说我们在非main.qml的页面中用到了Controls系列的QML控件,那么我们必须在main.qml中,就已经要写上import QtQuick.Controls 1.4这样的语句。即使main.qml中没用到这个控件,也要写这个import,不然当我们在非main.qml中使用的时候,就会报错原创 2017-05-06 16:45:35 · 10314 阅读 · 1 评论 -
Qt:在QML中自定义贝塞尔动画曲线
Qt在PropertyAnimation中,已经准备了很多常用的动画曲线,比如说Linear、Quad、Elastic等。这些基本已经可以覆盖我们大部分需求了,但是也不是所有的。 比如说,google非常有名的设计风格Material,就有自己的动画曲线,如下图:这个呢,在QML中是没有的。要实现它,最简单的方法就是自定义一个贝塞尔曲线。别被这个名字吓到了,实际上我们要用到的就是4个数字,没有什么原创 2017-06-05 17:03:02 · 5514 阅读 · 0 评论 -
Qt:解码海康视频格式并显示在QLabel上
海康的格式比较特殊,几乎是私有的,解码的话要使用海康的库才行。先要下载SDK,地址如下: http://www1.hikvision.com/cn/download_more_406.html我这里下载的是64位的,我本地的环境是Qt5.9.0 64bit配合VS2013使用的话,还是挺方便的,pro中导入海康的库LIBS += -L$$PWD/hik -lPlayCtrl代码如下:#includ原创 2017-07-03 23:47:08 · 11008 阅读 · 6 评论 -
Qt:获取系统CPU使用率(Windows+macOS+Linux)
介绍JQCPUMonitor,是一个给Qt开发的,CPU使用率检测库,目前只检测CPU整体使用率。支持3个主要平台,Windows、macOS和Linux返回qreal类型,0表示0%使用率,1表示100%使用率,0.5表示50%使用率,以此类推使用举例获取当前CPU使用率JQCPUMonitor::cpuUsagePercentage()获取5秒内平均C...原创 2018-07-15 15:24:23 · 9859 阅读 · 4 评论 -
Qt:在QtCreator中使用Clang-Tidy和Clazy检查C++代码质量
QtCreator在前几天发布了4.6.0的版本,增加了两个非常棒的新功能,分别是Clang-Tidy和Clazy官方的blog链接: Qt Creator 4.6.0 released这些功能能够帮助我们更好的检查C++代码,甚至是一键纠正,具体的特性和好处不在累述,网上太多了,有兴趣可以自行搜索。所有的代码检查配置,因人而异,请根据自己需求,做调整。检查项不是越多越好代码检查...原创 2018-04-05 10:44:15 · 11537 阅读 · 1 评论 -
Qt:5.10新特性,在QML中定义枚举
Qt在5.5开始,支持在C++中定义一个枚举。 采用Q_ENUM关键字,注册自定义的枚举到元对象系统中,供QML使用。这,说实话,非常麻烦,非常麻烦,非常麻烦 嗯,麻烦的事情要说3次。以至于长期以来,在不想涉及太多C++的情况下,我自己开发QML程序都是用字符串做枚举,比如说“XxxStyle”这个问题,终于在5.10解决了。5.10中允许在QML中自定义枚举值,方式如下:My原创 2018-01-07 22:36:51 · 8538 阅读 · 6 评论 -
Qt:解决跨线程调用socket/IO类,导致报错的问题(socket notifiers cannot be enabled from another thread)
Qt有很多IO相关的类,比如说QTcpSocket、QFile,总的来说,在Qt的框架内使用,还是非常方便的。 但是用过其他框架IO类的人,可能有一个很不习惯,就是Qt的所有IO类,都不推荐或者不可以跨线程操作,不然就会报错,比如说操作QTcpSocket跨线程调用write接口,就会报错:socket notifiers cannot be enabled from another t原创 2018-01-10 11:17:41 · 15021 阅读 · 8 评论 -
Qt:实时显示大华摄像头数据到QLabel上
环境系统:Windows 10 64bit 编译器:VS 2013 64bit Qt:5.10.0 大华播放库:576773_General_PlaySDK_Chn_Windows64_IS_V3.39.1.R.171130 大华网络库:696_524592_General_NetSDK_Chn_Win64_IS_V3.48.1.R.170622pro文件QT += c原创 2018-01-13 16:58:58 · 6908 阅读 · 0 评论 -
Qt:用WebSocket构建QML和C++之间的桥梁
前言WebSocket,作为一个全双工的网络通讯协议,正在慢慢的被各大开发框架和语言接受。之前有说过Qt在5.10新出了WebGL的platform,连接如下:http://blog.csdn.net/wsj18808050/article/details/78791001其中在浏览器和程序之间,负担着大量数据传递,就是WebSocket。今天就来说下QML如何通过WebSocket和C++交互。原创 2017-12-30 23:31:24 · 2187 阅读 · 5 评论 -
Qt:终于来了!基于QML和WebGL开发网页端
序言Qt早在今年2月,就发布了WebGL相关的blog http://blog.qt.io/blog/2017/02/22/qt-quick-webgl-streaming/ 并且预计5.10加入这个feature10个月过去了,Qt在12月7号如约发布了5.10,其中包含了WebGL的插件一开始没反应过来,过了好几天才想起来这件事,于是乎马上行动起来,来当下小白鼠。关于WebGL和QML基于Q原创 2017-12-13 13:41:46 · 30089 阅读 · 9 评论 -
Qt:在树莓配中控制gpio阵脚
写了一个简单的demo,控制20号针脚,直接上代码原创 2017-10-25 13:17:46 · 1611 阅读 · 1 评论 -
Qt:在QML中使用Animator,让动画无卡顿
之前有说如果使用Qt的PropertyAnimation做Material曲线动画。传送门:```http://blog.csdn.net/wsj18808050/article/details/72869043```PropertyAnimation是Qt提供的属性动画,用的非常广泛。可以适用于很多场合,比如说X的移动,甚至自定义属性的修改。他还有很多派生类,比如说NumberAnimation、Color原创 2017-08-31 11:22:24 · 7421 阅读 · 2 评论 -
Qt:重定向QDebug输出到文件,并附上日期
介绍代码比较简单,就是一个函数,在main中调用即可原创 2016-12-31 11:55:50 · 2965 阅读 · 1 评论 -
Qt:解决QtQuick(QML)程序,在虚拟机或者某些环境下,动画速度过快的问题
QtQuick开发的程序,在虚拟机或者某些环境下,动画速度会以超过预定速度很多倍的速度运行。 比如说一个x轴的移动,设定3秒运行完成,实际上可能1秒就运行完了。 这个问题困扰我很久了,然后今天我终于解决掉了,这其实是Qt的一个弄巧成拙的设计。为什么这么说呢,Qt在某些环境里,比如说虚拟机里,会将渲染方式,从单线程改成多线程渲染。这原本只是想提升一下渲染性能的,但是实际上,尤其是桌面环境,渲染性能原创 2017-01-08 17:05:13 · 2225 阅读 · 0 评论 -
Qt:使用百度翻译API,做全平台的翻译工具
百度翻译文档:http://developer.baidu.com/wiki/index.php?title=帮助文档首页/百度翻译/翻译API使用百度翻译的API,需要申请一个ApiKey才可以正常使用。申请的方法在上方文档中都有说明。核心代码:JasonQt_Translation.h#ifndef __JasonQt_Translation_h__原创 2015-05-26 11:18:59 · 6282 阅读 · 0 评论 -
Qt:让QML中的控件自动缩放
为了让QML开发的程序适应更多的设备,我们可能需要去缩放Item,但是手动缩放开发太耗时还容易出错,所以我封装了一下效果是根据开发时的x、y、width、height自动缩放的扩展原创 2015-05-18 23:11:42 · 12813 阅读 · 2 评论 -
Qt:使用百度语音识别REST API,做全平台语音识别
百度语音开发介绍文档:http://yuyin.baidu.com/docs/asr#使用语音识别,需要在百度申请一个应用,然后拿到API Key和Secret Key,然后才可以使用语音识别ps:我的示例里面有放了一组可用的Key,但是仅供各位测试使用,有需要开发App的请自行申请,放在示例中的Key我可能随时会撤销。ps:编译需要开启C++11的支持ps:我写示例在OS X下是没问题的。但是当我移植到Windows下的时候,在刷新token那一步有问题,貌似和https有关,等到我想到解决方原创 2015-05-04 18:38:29 · 9550 阅读 · 5 评论 -
Qt:quick和C++双向传递图片
1.从quick传递图片到C++:这一步主要是在quick中,将对象的指针传回C++,再利用gradWindow的save把图片保存出来。核心函数bool saveImage(QObject *source) { QQuickItem *item = qobject_cast(source); if(!item) {原创 2015-04-17 10:41:02 · 1751 阅读 · 2 评论 -
Qt:QSqlDatabase的进一步封装(多线程支持+更加简单的操作)
开发背景:1.直接用QSqlDatabase我觉得太麻烦了;2.对于某些数据库,多个线程同时使用一个QSqlDatabase的时候会崩溃;3.这段时间没什么干货放出来觉得浑身不舒服,就去整了一个。于是,我就封装了一下只要简单的实例化,然后通过query()就可以拿到QSqlQuery的实例化对象。还自带计时,一段时间不用可自动关闭,既保证效率也不占用无用资源。原创 2015-04-05 21:28:54 · 14899 阅读 · 17 评论 -
Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装
Qt:基于TCP和UDP的局域网通讯封装原创 2015-01-16 16:25:16 · 4450 阅读 · 8 评论 -
Qt:通过IP获取当前地理位置天气数据
通过IP获取天气数据大致流程是:从百度Web服务api通过当前IP获取经纬度,然后将经纬度作为参数,从openweathermap获取天气数据,然后解析返回的json,打印到label上这个流程的好处:无需GPS定位,可快速解析,而且通用性强缺点:定位误差可能非常大关于百度Web服务api使用需要申请key,可以到这里申请http://lbsyu原创 2015-02-02 00:10:34 · 5040 阅读 · 6 评论 -
Qt:在非gui线程使用QMessageBox
Qt:在非gui线程使用QMessageBox原创 2015-01-22 15:44:16 · 6004 阅读 · 8 评论 -
Qt:局域网文件同步工具
Qt:局域网文件同步工具原创 2015-01-16 19:12:35 · 2596 阅读 · 0 评论 -
Qt:使用gSoap做一个简单的CS系统
首先介绍一下gSoap,这是一个非常厉害的网络库,封装程度非常高而且夸平台。支持SSL链接,数据格式为XML。介绍地址:http://sourceforge.net/projects/gsoap2/近段时间是有项目需求,所以接触到了这个库。自己摸索了一下,发现用这个库开发真的是非常方便。所以,强烈推荐各位使用gSoap开发。使用gSoap的大致步骤是原创 2015-08-16 22:11:03 · 5246 阅读 · 0 评论 -
Qt:将quick的控件图像保存为QImage
直接上代码注:C++11写法,需要编译器支持C++11标准才可以正常编译QImage itemToImage(QObject *object){ auto item = qobject_cast(object); if(!item) { return QImage(); } QEventLoop eventLoop; QImage buf;原创 2015-08-20 09:18:14 · 2141 阅读 · 0 评论 -
Qt:QML中,Warning: distance-field glyph is not available with index解决方法
最近在用QML开发的时候,在控制台经常看到Warning: distance-field glyph is not available with index这个提示,很多很多然后神奇的是Text组件里的文字也木有了,但是不是所有的Text的文字都绘制不出来,是一部分的。经过调查发现,如果用了Text,那么需要把renderType设置为Text.Nati原创 2015-12-11 17:41:30 · 2466 阅读 · 0 评论 -
Qt:5.7虚拟键盘中拼音输入法的使用
引言在Qt5.7中,以前只有企业版才有的虚拟键盘,终于可以在开原版中使用了。但是默认的Qt安装包,安装出来的虚拟键盘,是不包含拼音输入法的,这里我来说下怎么打开拼音的支持,以及使用了虚拟键盘后,项目如何部署。请注意我使用的环境是Qt5.7.0和VS2013 32bit,若你是MinGW,请注意部分命令是不同的本教程不包含虚拟键盘本身使用的使用教程使用的工程为示例中的Qt Quick Virtual原创 2016-09-27 17:21:02 · 17010 阅读 · 10 评论 -
Qt:使用基于zopfli的PNG图片压缩库
使用方法JQZopfli::optimize( "/Users/Jason/Desktop/Source.png", "/Users/Jason/Desktop/Target.png" );GitHub地址https://github.com/188080501/JQZopfli原创 2016-07-21 00:40:41 · 2106 阅读 · 0 评论