- 博客(77)
- 资源 (14)
- 收藏
- 关注
原创 Qt:工欲善其事,必先利其器。在Qt中使用Sentry在线收集日志
引言工欲善其事,必先利其器。软件工程越来越复杂,一定要依赖现代化的方式,帮助我们快速定位,分析问题。这里我们从日志相关3大功能,log、minidump和performance展开,讲述如何在Qt中使用Sentry在线收集日志关于SentrySentry平台,从简单的说是一个在线日志收集平台。从复杂说的可以帮我们处理从bug发生、定位、源码追溯、bug管理、修复、追踪,甚至是关联git和ci等一系列复杂流程。使用Sentry是为了帮助我们从繁琐、复杂的日志收集工作中解放出来,提升开发效率。同时S
2020-12-24 10:00:03
1536
原创 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
10083
4
原创 Qt for Windows:Qt 5.11.0 MinGW 静态编译版本(包含OpenSSL)
概述本文讲述如何使用已经编译好的套件,让Qt支持静态编译如果要自己编译,可以参考:http://blog.youkuaiyun.com/wsj18808050/article/details/72862478我的配置参数是:configure.bat -static -release -platform win32-g++ -prefix "C:\Qt\Qt5.11.0_Min...
2018-05-21 15:57:18
8215
原创 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
11932
1
原创 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
7011
原创 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
15416
6
原创 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
8664
6
原创 Qt:用WebSocket构建QML和C++之间的桥梁
前言WebSocket,作为一个全双工的网络通讯协议,正在慢慢的被各大开发框架和语言接受。之前有说过Qt在5.10新出了WebGL的platform,连接如下:http://blog.youkuaiyun.com/wsj18808050/article/details/78791001其中在浏览器和程序之间,负担着大量数据传递,就是WebSocket。今天就来说下QML如何通过WebSocket和C++交互。
2017-12-30 23:31:24
2248
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
30437
9
原创 Qt for Windows:Qt 5.9.3 MinGW 静态编译版本(包含OpenSSL)
概述本文讲述如何使用已经编译好的套件,让Qt支持静态编译
2017-11-25 22:08:37
3958
3
原创 Qt:在QML中使用Animator,让动画无卡顿
之前有说如果使用Qt的PropertyAnimation做Material曲线动画。传送门:```http://blog.youkuaiyun.com/wsj18808050/article/details/72869043```PropertyAnimation是Qt提供的属性动画,用的非常广泛。可以适用于很多场合,比如说X的移动,甚至自定义属性的修改。他还有很多派生类,比如说NumberAnimation、Color
2017-08-31 11:22:24
7588
1
原创 Qt for Linux:树莓派3配置Qt开发环境(Qt 5.9.1 和 OpenCV 2.4.13)
关于树莓派我用的是 树莓派树莓派3代B型 Raspberry Pi Model 3 B我拿来是做监控视频采集的,所以会用到 Qt 和 OpenCV开发上,除了视频采集和视频文件生成用的OpenCV,其他全部Qt本篇文章只涉及树莓派的配置,不涉及具体的开发配置树莓派系统下载系统镜像(下列方法3选1去下载即可)官网地址https://ubuntu-mate.org/download/磁力链接magne
2017-07-04 17:18:02
8969
4
原创 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
11107
6
原创 Qt:在QML中自定义贝塞尔动画曲线
Qt在PropertyAnimation中,已经准备了很多常用的动画曲线,比如说Linear、Quad、Elastic等。这些基本已经可以覆盖我们大部分需求了,但是也不是所有的。 比如说,google非常有名的设计风格Material,就有自己的动画曲线,如下图:这个呢,在QML中是没有的。要实现它,最简单的方法就是自定义一个贝塞尔曲线。别被这个名字吓到了,实际上我们要用到的就是4个数字,没有什么
2017-06-05 17:03:02
5652
原创 Qt for Windows:静态发布QML开发的程序
概述之前写了一篇,讲如何静态编译Qt5.9.0,链接如下:http://blog.youkuaiyun.com/wsj18808050/article/details/72862478现在趁热打铁,再说下如何以静态方式,发布QML程序。其实静态发布Quick/QML程序,大体上和静态发布Widgets差不多,只不过QML部分的一些库,是无法静态编译的,毕竟都称不上C++。
2017-06-05 12:01:49
5960
原创 Qt for Windows:Qt 5.9.0 MinGW 静态编译版本(包含OpenSSL)
概述5月31号,Qt这一次竟然没跳票,如约发布了LTS的5.9感觉这一次5.9用的人会很多,毕竟LTS,而且确实改进很大,所以这一次完整的写一遍静态编译的步骤我这里只涉及MinGW版本的静态编译,包含OpenSSL,不包含MySql,稍后我会把所有涉及到的编译结果,包括虚拟机,全部上传到百度云
2017-06-04 23:13:19
28135
1
原创 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
10462
1
原创 Qt for Mac:配置/搭建开发环境
经常看到有人在问,所以干脆整理下,其实步骤很简单。 我用的环境,在写稿时都是最新的,分别是:macOS 10.12.4、Xcode8.3.2和Qt5.8.0,都是在虚拟机里弄的。准备首先要准备一个macOS系统,这个是真机或者虚拟机都可。我这里用了虚拟机,安装步骤我就跳过不讲了。PS:我制作macOS系统安装U盘的命令是sudo /Applications/Install\ macOS\ Si
2017-04-23 23:07:40
38236
5
原创 Qt:通过预解释和预读取,大幅度提升图片加载速度
在我以往的开发中,尤其是嵌入式,图片的加载一直是一个头疼的问题。图片大了,加载就很慢,在嵌入式上,一个1280*1080的图片,加载可能要好几百毫秒。也就是说加载一个背景,就可能要花去几百毫秒,还不包括其他各种图片。 在用尽各种奇妙的方法后,今天终于找到一个根治的方法。赶紧来和大家分享下。首先,我们要知道一个图片的加载,时间到底消耗在哪。一般来说,一个图片加载,可以分为两步,第一步是从硬...
2017-03-28 11:15:58
9091
原创 Qt:使用ShaderEffectSource对Item拍摄"UI快照",提升渲染效率
在上一篇中,提到了如何使用QML Profiler对程序性能问题进行分析 http://blog.youkuaiyun.com/wsj18808050/article/details/62226574而这片文章,就开始我们第一个实战。这个实战,对应一个很简单并且很常见的需求,就是我们有一个静态(固定内容)的图像,但是这个图像需要一直显示在那里,也许我们还需要对这个图像进行动画。这时候,根据这个图像本身的复杂程
2017-03-19 16:03:30
2601
原创 Qt:通过QML Profiler分析程序性能问题
对于一个程序的开发,性能优化是开发中的一个重要步骤。我们肯定不希望开发出来的程序表现出卡顿,最好是处处流畅,丝滑般的体验。
2017-03-15 15:41:35
9315
原创 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
16081
8
原创 Qt for Windows:Qt 5.8.0 MinGW 静态编译版本(包含OpenSSL)
刚刚弄好了5.8.0的静态编译,过程的话,和以前都差不多,就不多说了 唯一的不同就是 -qt-sql-sqlite 要改成 -qt-sqlite ,不然会报错如果想自己制作静态编译版本的Qt,我贴个以前5.6的链接,可以参考下 http://blog.youkuaiyun.com/wsj18808050/article/details/50909381#comments这一次编译,我用的配置参数是:conf
2017-01-25 18:58:27
11358
原创 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
13169
2
原创 Qt:获取屏幕物理长度和宽度(CM)
Qt有提供接口,获取屏幕的分辨率和DPI,那么通过这些接口的组合,我们就可以算出来屏幕的物理高宽了代码如下:QGuiApplication app( argc, argv );QScreen *primaryScreen = app.primaryScreen();qDebug() << "primary screen width(cm):" << ( ( primaryScreen->geome
2017-01-11 17:16:55
10629
1
原创 Qt:解决QtQuick(QML)程序,在虚拟机或者某些环境下,动画速度过快的问题
QtQuick开发的程序,在虚拟机或者某些环境下,动画速度会以超过预定速度很多倍的速度运行。 比如说一个x轴的移动,设定3秒运行完成,实际上可能1秒就运行完了。 这个问题困扰我很久了,然后今天我终于解决掉了,这其实是Qt的一个弄巧成拙的设计。为什么这么说呢,Qt在某些环境里,比如说虚拟机里,会将渲染方式,从单线程改成多线程渲染。这原本只是想提升一下渲染性能的,但是实际上,尤其是桌面环境,渲染性能
2017-01-08 17:05:13
2276
原创 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
5139
2
原创 Qt:5.7虚拟键盘中拼音输入法的使用
引言在Qt5.7中,以前只有企业版才有的虚拟键盘,终于可以在开原版中使用了。但是默认的Qt安装包,安装出来的虚拟键盘,是不包含拼音输入法的,这里我来说下怎么打开拼音的支持,以及使用了虚拟键盘后,项目如何部署。请注意我使用的环境是Qt5.7.0和VS2013 32bit,若你是MinGW,请注意部分命令是不同的本教程不包含虚拟键盘本身使用的使用教程使用的工程为示例中的Qt Quick Virtual
2016-09-27 17:21:02
17100
4
原创 Qt for Linux:在CentOS下编译Qt5.7
概述本文将讲述如何在CentOS的系统下,编译Qt5.7系统我使用的是阿里云的RCS主机,1G内存,1M带宽,40G硬盘,CentOS 7系统,64位。 这个配置拿来跑服务器足够了(我是拿Qt写服务器的)。编译步骤安装gcc 我装的是gcc5.2,安装步骤在这里有 注:不用看所有的,只要看gcc安装部分就行 注2:如果是64位系统,在 3.14和3.15 这两...
2016-07-23 09:44:08
7959
原创 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
2144
原创 Qt:计算CRC校验值(CRC16和CRC32)
CRC有非常多的模式,我没有全部都做,目前支持CRC16-ModbusCRC16-X25CRC32GitHub地址: https://github.com/188080501/JQChecksum
2016-07-14 11:49:04
15250
3
原创 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
36321
27
原创 Qt:用 __thread 关键字让每个线程有自己的全局变量
在GUN标准中,提供了__thread关键字,配合static后,可以实现让一个线程拥有自己的专属变量。我对__thread进行了简单的封装,可以用于存储class。并且防止了内存泄露(如果使用Qt线程类)。测试中,我一共开启了两个线程,从输出可以得知每个线程都拥有自己的变量,并且在线程退出后被正常释放。测试代码:// Qt lib import#include <QtCore>#include
2016-06-07 13:18:48
4239
原创 Qt:让程序实现单例模式,只能打开一次
介绍让程序实现单例模式,只能打开一次,这已经是一个老生常谈的问题了。方法也有很多,比如说监听端口,文件锁。我这里介绍一个用共享内存的方法。
2016-05-22 17:35:37
8207
原创 Qt:基于Qt开发的开源小工具包:JQTools
JQTools,为 Jason Qt Tools 的简称这是一个基于Qt开发的开源小工具包。包含了在开发程序(尤其是Qt程序)时,需要的各种小功能。本工具使用 QML(界面) 和 C++(逻辑) 开发,源码均已开源在了GitHub上。本工具我会持续更新。GitHub地址:https://github.com/188080501/JQTools
2016-05-15 15:09:59
3883
原创 Qt:Windows10 64bit VMware虚拟机环境,基于Qt 5.6 MinGW,静态编译版本和Android环境
很多人觉得编译静态环境麻烦,配置安卓环境麻烦,所以我干脆做了一个虚拟机,系统是Windows10 64bit 专业版,Qt环境是 5.6.0 MinGW版本
2016-03-20 10:04:39
6913
JasonQt_Weather Demo(修正)
2015-02-24
JasonQt_Weather Demo
2015-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人