Qt学习笔记
文章平均质量分 61
记录了对Qt知识点的总结,和在使用Qt过程中遇到的问题以及解决方案。
画茧自缚
要结束一场战争,最快的方式就是输掉它。
展开
-
Qt之与游戏手柄的交互(一)
用途通过手柄与Qt的通信,发送指令至远程设备,控制远程设备的运动。手柄种类市面上的游戏手柄也有多种种类,主流的是蓝牙手柄、2.4g手柄和usb手柄。无线手柄有的会识别出来是2.4g设备,有的识别出来是usb设备。本文中的方法只支持Xbox手柄,使用其他手柄不会被Qt的手柄模块识别到,这里用的是淘宝销量第一的北通手柄,接收器接上电脑后会识别为Xbox360设备,如下图:图片--------...原创 2018-09-29 21:43:49 · 13076 阅读 · 10 评论 -
Qt+OpenCV之usb摄像头视频流中的人脸识别及人脸抠图保存
效果相关内容Qt+OpenCV之图片中的人脸识别及人脸抠图人脸识别知识点人脸识别过程:输入图像预处理人脸检测图像表示与特征提取人脸识别识别原理简述:算法根据代码中设置的目标检测阈值参数(Size)以方框区域对检测的图片进行从左到右从上到下的扫描,对扫描到的符合要求的目标返回变量矩阵。所以,当需要检测的图像越大时,检测时间就会越长。这里也用了检测前缩放图片的方式提高检测速度,但也带来了...原创 2019-04-01 23:11:44 · 4124 阅读 · 9 评论 -
Qt+OpenCV之图片中的人脸识别及人脸抠图
效果OpenCV函数知识点imread()功能:载入图像函数原型:Mat cv::imread ( const String & filename, int flags = IMREAD_COLOR ) 参数1:打开的文件路径参数2:图像类型,-1表示当前导入图像的解码类型,0表示单通道,1表示三通道cvtColor()功能:颜色空间(通道数)转换函数原型:void ...原创 2019-03-31 22:12:20 · 4236 阅读 · 0 评论 -
Qt之常用的数据转换、计算
文章目录int与string之间的转换QString 与 QByteArray之间 的转换QByteArray 与 char*之 间的转换QString与char 之间的转换QString 与char*之间的转换doblue/float取小数点后n位进位取舍计算int与string之间的转换Qt C++int i; QString str;str = QString::number(i)...原创 2018-09-26 21:59:19 · 1473 阅读 · 0 评论 -
Qt之CMake和MinGW编译OpenCV独立模块opencv_contrib
相关内容Qt之CMake和MinGW编译OpenCVopencv_contrib简介OpenCV3.0专注于模块化,并进一步分为官方OpenCV主库和由用户维护的独立模块opencv_contrib。opencv_contrib库为非稳定版本,非OpenCV官方发布和维护,可以看做是对opencv的扩展,包含了众多具有实用价值的模块,诸如人脸识别、深度神经网络、目标跟踪等等,详细模...原创 2018-09-12 23:39:33 · 1773 阅读 · 0 评论 -
Qt之CMake和MinGW编译OpenCV
这里编译的是最新版OpenCV3.4.3,编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录。编译环境win10-64bitQt5.9.4MinGW-5.3.0-32bitCMake-3.12.1OpenCV-3.4.3相关软件下载地址Qt下载地址:http://download.qt.io/arc...原创 2018-09-07 00:05:24 · 10687 阅读 · 5 评论 -
Qt+百度AI实现人脸识别之人脸检测
简单需求Demo运行结果百度AI人脸识别接入为什么使用百度AI接口接入步骤如何获取Access TokenQt软件开发人脸检测Qt编程步骤知识点网络编程get、put、post请求方式的区别简述POST 提交数据方式如何对图片进行BASE64编码JSON数据解析核心代码数据上传请求反馈数据解析完整示例代码简单需求本篇笔记中的示例实...原创 2018-08-19 02:06:08 · 22551 阅读 · 11 评论 -
QML之鼠标在画布/图片(Canvas)上点击时获取该点的颜色值
应用我这边是用到了灰度图进行导航,黑色为障碍物区域,白色为道路,所以可以通过判断鼠标点击时获取的颜色来提示用户是否将位置点标记在了障碍物上。示例代码import QtQuick 2.9import QtQuick.Window 2.2Window { visible: true width: 640 height: 480 title: q...原创 2018-08-07 22:32:57 · 2533 阅读 · 0 评论 -
QML之侧滑抽屉(菜单)
可以用两种方式实现抽屉效果,一种是使用动画,一种是直接使用抽屉控件(Drawer)。效果区别1、使用动画更加灵活,更方便自定义动画效果 2、使用动画实现的抽屉需要依靠其Z属性确定其所在哪一层,Drawer弹出时在最上层 3、Drawer继承自Popup,可以设置为模态和非模态,可以方便设置其关闭方式 4、动画使用start()和stop()打开关闭,Drawer使用ope...原创 2018-07-17 20:26:18 · 5389 阅读 · 1 评论 -
QML之图片拖拽与缩放
方法这里使用的是drag属性实现,其实还可以将图片置于ScrollView中实现拖拽,或者是放在Flickable中。效果代码import QtQuick 2.9import QtQuick.Window 2.2Window { visible: true width: 1620 height: 720 title: qsTr("Hel...原创 2018-07-16 00:08:49 · 4247 阅读 · 2 评论 -
QML之在QtQuick.Controls 2项目中使用QtQuick.Controls模块中的控件
区别下面的笔记中将QtQuick.Controls 2简称为qml2,QtQuick.Controls简称为qml1。最直观的的区别就是qml2的控件及界面风格更加美观,qml2提供了一套谷歌风格的控件,与安卓上的控件风格一样,基本不需要再自定义了,控件本身的外观和点击效果已经可以满足大部分环境。详细说明见官方文档:QtQuick.Controls 2与QtQuick.Controls...原创 2018-07-15 23:29:54 · 6784 阅读 · 3 评论 -
QML之虚拟键盘简单使用
更改键盘皮肤1、先导入模块import QtQuick.VirtualKeyboard.Settings 2.22、设置“复古”皮肤/主题,目前除了默认的皮肤就这个了,感觉这个更漂亮VirtualKeyboardSettings.styleName = "retro"效果: 设置键盘大小和位置InputPanel { id: inputPanel原创 2018-04-17 23:39:05 · 9406 阅读 · 1 评论 -
QML之ubuntu下编译安装虚拟键盘中文输入法
写在前面1、一个兼容性问题:ubuntu14.04 + qt5.7以上版本开发时会遇到各种问题,多是由于类似于编译器等版本过低或者不兼容导致。建议使用ubuntu16.04 + qt5.9开发,两个长期支持的稳定版本,应该时目前最合适的搭配了。ubuntu14.04编译qt5.7以上版本虚拟键盘报错:g++:error: unrecognized command line opti...原创 2018-04-17 22:26:52 · 2775 阅读 · 5 评论 -
QML之自定义模态可拖拽窗口
效果代码main.qmlimport QtQuick 2.5import Qt.labs.controls 1.0ApplicationWindow { id: root visible: true width: 840 height: 680 title: qsTr("Hello World") Button{ id: btn原创 2017-12-21 22:11:39 · 4522 阅读 · 0 评论 -
QML之控制小车运动并绘制路径
效果知识点绘图,使用Canvas进行绘图图层叠加,小车运动和路径的绘制为两个图层,所以两者互不干扰画布旋转,小车转向并非是将图标进行旋转而是将画布进行旋转 绘制图片,初始点标定是将图标绘制在图层上绘制路径,将小车每次移动的轨迹用线段连接源码绘制小车/*********************实时刷新小车位置图层************************/Canvas{原创 2017-10-31 23:12:22 · 3697 阅读 · 0 评论 -
QML之MouseArea双击时过滤掉单击事件
Demo测试代码ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("Hello World") MouseArea{ anchors.fill: parent onPressed: { console.log("pres原创 2017-10-10 19:56:55 · 5321 阅读 · 1 评论 -
QML之按键翻转效果
效果Demo源码第一个图片是书上的demo,第二个和第三个做了修改Flipable { id: flipable width: 240 height: 240 property bool flipped: false front: Image { source: "front.png"; anchors.centerIn: parent }...原创 2017-09-13 21:35:57 · 1246 阅读 · 0 评论 -
QML之自定义电池充电/电量显示效果
QML之自定义电池充电/电量显示效果效果如下实现方式其实,实现起来很简单,用到了很少的东西,主要用到下面两种方式: 1. 切图片,准备好几个不同电量显示的图片,根据电量信号的反馈切换对应的图片 2. 自定义,用到了极少的item,基本是rect + label源码下载可以在这里下载源码原创 2017-07-12 23:45:01 · 2604 阅读 · 0 评论 -
认清基本数据类型和Qt串口通信数据类型转换
1、C语言基本数据类型 在C语言中,仅有4种基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等),所有其他的类型都是从这4种基本类型的某种组合派生而来。 整型包括char(字符)、short(短整型)、int(整型)、long(长整型),浮点型包括float(单精度型)和double(双精度型)。取值范围如下: 总结: ①应该有人和我一样,很多情况下原创 2016-12-29 19:27:43 · 5426 阅读 · 3 评论 -
Qt实现保存、浏览、预览、打印功能
Qt提供了以文本、图片、HTML等方式来实现对文档的操作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口、QPrintPreviewDialog预览窗口类和QPrintDialog打印窗口类,Qt5也提供了QPdfWriter类来实现对pdf的操作,这里并不包括打开pdf文件,Qt没有提供任何方法来直接像文件浏览器一样打开pdf文件,可以用第...原创 2016-08-11 17:52:48 · 25179 阅读 · 2 评论 -
Qt creator正常使用过程中崩溃
很奇怪,不知道什么原因,一新建设计师界面类Qt creator就会停止运行,此前一直都使用的好好的,重装过后还是不行,更换了版本还是不行。上网搜索答案未果,看到有人也出现了崩溃,但是情况不同,就照上面的修改方式进行了尝试,果然解决了。 解决:删除C:\Users\Administrator\.designer\gradients.xml目录下的gradients.xml文原创 2016-06-03 15:10:22 · 3283 阅读 · 0 评论 -
Qt Creator设置黑色主题背景
黑色的主题看起来比较炫酷一点,也有人说黑色主题用起来对眼睛好,不过个人感觉然并卵,根据自己的习惯爱好设置就好。如果想保护眼睛,还是将屏幕调到合适的亮度,不要太暗,自己眼睛觉得舒服最好。也可以通过“桌面右击--个性化--高级”来设置窗口、桌面等的背景色为自定义颜色(色调85,饱和度123,亮度205)。下面是Qt5集成的Qt Creator设置黑色背景的方法,之前有些版本稍有差别:原创 2015-08-05 15:29:23 · 32197 阅读 · 2 评论 -
初次使用QT5串口类QSerialPort
因为工作需要,现在正在学习Qt的串口通信。Qt4的话需要使用第三方类,使用起来也非常简单,只需要把对应的文件添加到自己的项目中就可以了,我参考的是Qt论坛上的demo,刘大师和yafei的demo都非常详细,网上都可以下载到。不过,Qt5添加了串口类,使用起来就更方便了。 我这里主要是对串口类的简单使用,实现的功能是以读写方式打开串口,点击发送数据按钮将发送...原创 2016-05-25 11:24:38 · 33090 阅读 · 18 评论 -
QString类常用函数
QT的QString类是一个常用类,提供了很方便的对字符串操作的接口。 最近老是用到这个类,就总结了一下QString类的常用函数,例: 1、 QString str1 = "hello world!"; //获取字符串的长度 str...原创 2016-04-28 21:47:12 · 2456 阅读 · 1 评论 -
QT控件被其他控件遮盖
这里有多个textEdit,想要实现当某个textEdit获得焦点时重置它的大小以方便文字输入,当失去焦点时恢复原状。遇到的问题是,给textEdit重置大小后会被下面的控件遮盖,背景颜色也显示不完全。还有一个问题是,第一个textEdit遮住了第二个导致第二个无法点击。如下图: 解决:添加ui->textEdit->raise();解决了遮盖问题,重新修...原创 2016-04-06 22:16:39 · 11343 阅读 · 0 评论 -
QT事件过滤器、事件重载和焦点事件
常见的QT事件有很多,例如:键盘事件: 按键按下和松开;鼠标事件: 鼠标移动,鼠标按键的按下和松开.,双击;拖放事件: 用鼠标进行拖放;滚轮事件: 鼠标滚轮滚动;绘屏事件: 重绘屏幕的某些部分;定时事件: 定时器到时触发;焦点事件: 键盘焦点移动;进入和离开事件: 鼠标移入widget之内,或是移出;移动事件: widget的位置改变;大小改变事件: widge...原创 2016-01-19 09:20:26 · 2963 阅读 · 0 评论 -
Qt中在QMAinWindow内添加layout出现问题
在QDialog的派生类中,添加Layout,可在创建Layout对象的同时指定其父窗口,但这在QMainWindow中行不通,可能会出现" ..已经设置过布局.. "或者设置的Layout不能正常显示。这是因为基于主窗口的程序,默认已经有了自己的布局管理器,所以再次设置Layout的话会失效。 QMainWindow的中心控件是一个QWidget,可以通过setCentralW...原创 2015-09-29 13:43:43 · 3295 阅读 · 3 评论 -
QT5主窗体
这里通过一个文本编辑器的应用实例来介绍QMainWindow主窗体的各种功能的开发。1 基本元素 QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器、图片...原创 2015-09-25 15:10:35 · 2355 阅读 · 0 评论 -
Qt窗体之间相互传值的三种方式
1.使用QT中的Signal&Slot机制进行传值我在mainwindow里面添加了一个textedit用来接收传递过来的值,dialog里面添加了一个ok按钮和一个lineedit,可以在lineedit里面输入信息点击ok按钮时传递到主窗口。dialog.h如下:#ifndef DIALOG_H#define DIALOG_H#include <QDialog...原创 2015-09-17 11:30:05 · 58349 阅读 · 9 评论 -
Qt工具类
1 字符串类1.1 操作字符串 字符串有如下几个操作符。 (1)QString提供了一个二元的“+”操作符用于组合两个字符串,并提供了一个“+=”操作符用于将一个字符串追加到另一个字符串的末尾,例如: QString str1 = "Welcome "; str1=str1+"to you! "; //str1=" Welcome to you! "...原创 2015-09-10 17:02:05 · 4673 阅读 · 0 评论 -
QT之设计部件背景色
一、使用QT样式表设计部件外观 样式表使用文本描述,可以使用QApplication::setStyleSheet()函数将其设置到整个应用程序上,也可以使用QWidget::setStyleSheet()函数将其设置到一个指定的部件上。 1、使用代码设置样式表 如果希望对指定部件设置背景色,可以添加如下代码: //设置pushButton的背景为黄色ui...原创 2015-07-29 20:39:42 · 22827 阅读 · 2 评论