Qt
文章平均质量分 81
china_jeffery
持续学习者;
擅长开发开源组件及相关工具;
长期致力于应用各种IT新技术提升生产效率和解决实际问题;
展开
-
回顾2D绘图的数学知识
本篇旨在帮助开发人员回顾在2D图形编程中可能会涉及到的数学知识。原创 2024-04-08 16:01:09 · 815 阅读 · 0 评论 -
Qt QSS的几种图片显示方式
大家在使用QSS进行图片设置时,一定被image, border-image, background-image这几个属性困扰过。比如他们之间有什么区别,什么时候该用哪个属性来设置等等。本文就来讲解一下这个几个属性的异同点。在讲解之前需要大家对Qt的盒子模型有所了解,建议大家先阅读一下《Qt QSS使用》文章中关于盒子模型的部分。一、background-imagebackground-image按图片实际尺寸显示,超过控件部分会被裁剪,虽能显示SVG,但无法对SVG进行无损缩放;关于backgr原创 2020-06-10 16:24:34 · 10165 阅读 · 1 评论 -
Qt无边框窗体实现方案
Qt虽然提供了诸如Qt::FramelessWindowHint之类的属性可以移除窗体的边框,但是移除边框之后,窗体的一些默认行为也被移除了,如鼠标拖动改变大小、双击标题栏最大化等,这些行为需要开发者自己来实现。本文主要介绍实现无边框窗体的几种方案。笔者认为,一个完美的无边框窗体解决方案需要支持如下功能:支持通过使用鼠标拖拽来改变窗体位置和大小;支持双击标题栏最大化窗体和还原窗体;支持Windows Areo Snap特性;支持系统阴影;支持跨不同DPI的屏幕拖拽;适应分辨率和DPI改变;原创 2020-05-30 15:56:17 · 1925 阅读 · 3 评论 -
Qt 5.13.2版本静态库编译
本文介绍如何使用MSVC编译Qt 5.13.2版本的静态库.1. 下载qt-everywhere-src-5.13.2Qt离线下载地址:http://download.qt.io/archive/qt/下载完成之后,解压到D:\Qt-5.13.2\qt-everywhere-src-5.13.2目录。2. 配置环境变量将如下内容保存到qtvars.cmd文件:REM Set up ...原创 2020-04-14 15:24:14 · 1089 阅读 · 0 评论 -
Qt QSS使用
一、选择器类型Qt QSS选择器和CSS2、CSS3的选择器类似,建议先学习或者复习一下CSS选择器的语法。QSS虽然和CSS类型,但有也稍许不同,而且支持的语法也没那么多,具体讲解如下。1.1 类选择器/*匹配QPushButton的实例及其子类*/QPushButton { color: blue;}/*匹配QPushButton的实例,但不包含子类*/.QPu...原创 2019-12-11 14:50:49 · 1553 阅读 · 0 评论 -
Qt实现HTTP的Get/Post请求
借助Qt的NetWork模块,可以轻松的实现HTTP的Get/Post请求,而不需要再次引用像libcurl这样的第三方库。头文件#include <QNetworkRequest>#include <QNetworkReply>#include <QNetworkAccessManager&am原创 2018-10-21 22:21:39 · 50117 阅读 · 13 评论 -
拨开字符编码的迷雾--Qt字符编码
在使用Qt开发的过程中,我们经常会遇到中文乱码的问题,虽然网上提供了有很多方法都可以用来解决这个问题,但他们都没有从原理上进行讲解。本文力求从原理上来讲解清楚Qt字符编码的问题。在阅读本文之前,需要先掌握编码的基础知识以及编译器如何处理字符编码,建议先阅读之前的几篇文章:拨开字符编码的迷雾–字符编码概述拨开字符编码的迷雾–编译器如何处理文件编码我们以“测试字符串-보고싶다-Test St...原创 2018-10-21 20:33:04 · 511 阅读 · 0 评论 -
Qt无边框窗体模仿Win32标准窗体鼠标拖拽效果
本文介绍如何针对Qt的无边框窗体(即setWindowFlags(Qt::FramelessWindowHint);)实现鼠标拖拽标题栏移动窗体位置、鼠标拖拽窗体四周边框改变窗体大小的行为。一、为所有控件添加MouseTracking在Qt中,控件默认只有在至少有一个鼠标按键被按下的情况下,控件才能捕获鼠标的移动事件。针对我们想要模拟“鼠标拖拽窗体四周边框改变窗体大小的行为”,需要能够实时获得...原创 2018-10-21 20:03:06 · 698 阅读 · 0 评论 -
Qt静态库编译指南
本文编译环境为: VS2013 + Qt5.5.1一、准备安装VS2013及下载Qt5.5.1源码。安装ActivePerl,并且将安装目录添加到PATH环境变量。安装Python,并且将安装目录添加到PATH环境变量。安装GPerf,并且将安装目录/gnuwin32/bin目录添加到PATH环境变量。下载地址:http://gnuwin32.sourceforge.net/...原创 2018-10-08 16:59:37 · 1323 阅读 · 0 评论 -
Qt --常见问题解决方案
Qt官网目前已经不提供离线安装包的下载入口,但可以通过下面的网址下载离线安装包:http://download.qt.io/archive/qt/原创 2018-05-02 23:19:48 · 21915 阅读 · 0 评论 -
人脸识别系统开发(6) -- OpenCV摄像头预览
OpenCV的使用起来非常人性化,是我见过为数不多的,体量大且在windows平台编译没警告的开源库,不得不承认开发opencv的科学家是真的严谨。 这里OpenCV使用的版本是2.4.13.3,使用cmake生成visual stuido工程,编译即可。OpenCV官方提供了丰富的示例,包括摄像头预览、人脸检测、人脸比对等等。 使用opencv操作USB摄像头,用户只需要指定设备ID原创 2018-01-03 16:35:54 · 117999 阅读 · 0 评论 -
人脸识别系统开发(1) -- 系统及开发环境介绍
一、开发环境介绍Visual Studio 2015Qt 5.6.3 (该版本及以上版本都可以)dlib-19.7opencv-2.4.13.3-vc14mkl_2018.0.124 (编译dlib时需要) mkl下载地址:https://pan.baidu.com/s/1qYHriKs 密码:wl6z Visual studio+Qt的开发环境搭建参考:Visual Stud原创 2018-01-02 14:46:56 · 143326 阅读 · 10 评论 -
Visual Studio + Qt开发环境搭建
1. 安装Visual Studio 2015Visual Studio 2015下载地址如下,安装比较常规,不做介绍。Visual Studio Enterprise 2015 with Update 3 (x86 and x64) - DVD (Chinese-Simplified)ed2k://|file|cn_visual_studio_enterprise_2015_wi原创 2017-10-31 14:11:01 · 84844 阅读 · 0 评论 -
人脸识别系统开发(2) -- QML基础语法
本文以代码注释的形式来说明QML的基础语法。若需要了解相关布局、控件的详细用法可以参考Qt5的在线文档:http://doc.qt.io/qt-5/,Qt官方提供了详细的示例。 QML的教程可以参考《Qt Quick核心编程》qml文件可以直接使用qmlscene.exe(所在目录参考C:\Qt\Qt5.6.3\5.6.3\msvc2015\bin)来预览。如果使用了自定义注册类型,预览时会报错,原创 2018-01-02 17:09:46 · 134289 阅读 · 2 评论 -
人脸识别系统开发(3) -- C++与QML混合编程
使用Qt Quick技术可以快速的构建流畅的界面,而且具有动画等各种绚丽的效果。但它也有很多局限性,比如在网络访问、硬件操作、文件处理等方面,所以在很多时候我们需要混合使用C++和QML,比如使用QML构建界面,使用C++来实现非界面的业务逻辑等。这样也就涉及到了QML和C++之间的交互了。其实,QML的很多基本类型本来也是通过C++来实现的,比如Item对应QQuickItem类,Image对应Q原创 2018-01-02 19:18:17 · 134014 阅读 · 0 评论 -
人脸识别系统开发(4) -- 图片列表功能
在该人脸识别系统中,每次识别过程都会从摄像头实时捕获N(暂定为3)张人脸图片,用这N张图片来和证件上面的人脸进行比对。系统会将每次捕获的人脸图片显示在右侧的列表中,我们可以通过QML中的ListView来实现列表功能。MVC在说ListView功能前,就不得不提MVC设计模式了,因为ListView是采用这个模式来实现的。Model-View—Controller(MVC)是源自SmallTalk的原创 2018-01-03 13:19:41 · 136410 阅读 · 1 评论 -
人脸识别系统开发(5) -- QML显示QImage
QML显示QImage的流程大致如下:1. 定义一个QQuickImageProvider派生类,实现requestImage和requestPixmap接口,返回需要显示的图片。示例:#pragma once#include <QImage>#include <QMap>#include <QQuickImageProvider>class GrapImageProvider : publi原创 2018-01-03 15:43:16 · 117556 阅读 · 0 评论 -
人脸识别系统开发(7) -- cv::Mat与QImage相互转换
#include <QImage>#include <opencv2/opencv.hpp>#include <QDebug>QImage cvMat2QImage(const cv::Mat & mat){ // 8-bits unsigned, NO. OF CHANNELS = 1 if (mat.type() == CV_8UC1) { QIma原创 2018-01-03 16:47:44 · 117692 阅读 · 0 评论 -
人脸识别系统开发(8) -- OpenCV人脸检测
人脸检测使用cv::CascadeClassifier提供的功能实现,首先使用opencv自带的训练数据lbpcascade_frontalface.xml初始化CascadeClassifier,然后调用detectMultiScale得到图片中人脸的Rect.#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/imgproc/原创 2018-01-03 17:10:37 · 121445 阅读 · 0 评论 -
人脸识别系统开发(9) -- Dlib人脸比对
这里的人脸识别准确的说是人脸比对,特征点比对。opencv是基于机器学习的,需要使用素材进行训练,不符合该系统的要求。所以这里使用dlib来实现。从dlib官方网站http://dlib.net/下载源码,使用cmake生成visual stuido工程,然后编译。使用dlib进行人脸图片比对的大致流程如下(代码摘要):#include <dlib/dnn.h>#include <dlib/gui原创 2018-01-04 10:42:55 · 130058 阅读 · 0 评论 -
Qt+VS2015应用程序发布
本文以Qt 5.9.1+VS2015编译环境为例介绍应用程序发布流程,也适用于Qt+mingw的情况。一、 Qt依赖库将需要发布的exe(如test.exe),放到单独的目录。在“开始菜单”启动Qt 5.9.1 32-bit for Desktop (MSVC 2015),使用cd命令进入第1步中的目录。执行windeployqt.exe test.exe --qmldir C原创 2017-10-31 13:55:30 · 84263 阅读 · 1 评论