
Qt
文章平均质量分 70
hebbely
每天进步一点点
展开
-
Qt5 串口类QSerialPort
简述:在Qt5以上提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序。QtSerialPort模块中提供了两个C++类,分别是QSerialPort 和QSerialPortInfo。QSerialPort 类是Qt5封装的串口类,可与串口进行通信,提供了操作串口的各种接口。QSerialPortInfo类是一个辅助类,可以提供计算机中可用串口的各种信息。...原创 2022-03-14 17:18:39 · 7701 阅读 · 2 评论 -
字符串转二进制序列
字符串转二进制序列void stringToBinary(QString str){ int bKey[64]; // 二进制 for (int i = 0; i < 8; ++i) { int t[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int k = str.at(i).unicode(); qDebug() << Q_FUNC_INFO << __LINE__ <&原创 2022-02-14 16:43:30 · 926 阅读 · 0 评论 -
崩溃捕获google_breakpad源码编译及使用
简述:breakpad是一个比Linux core机制更强大的、用于记录程序崩溃时信息的工具。breakpad是google开发的一个跨平台C/C++ dump捕获开源库和工具套件,可用来发布删除了编译器调试信息的应用程序。在程序崩溃时,将崩溃信息记录在一个小巧的微软minidump格式文件中,支持将其发送回服务器,并且可以从这些minidump和符号文件来生成C和C++堆栈跟踪。breakpad可以在程序崩溃时触发dump写入操作,也可以在没有触发dump时主动写d...原创 2022-02-24 15:59:40 · 1245 阅读 · 1 评论 -
Sqlite模糊查询通配符%和下划线无法匹配问题
问题描述: 使用以下like语句查询,select * from table where columnName like '%_%';结果是返回全部的记录,不是想要的结果!网上搜索一下,原因如下:在like语句中的“下划线”代表匹配“任意一个字符”,“%”代表匹配“任意多个字符”。解决方案:方案一:使用escape转义escape的内容可以任意,只要保证前后一致即可select * f...原创 2021-09-22 14:43:16 · 1110 阅读 · 0 评论 -
动态获取SVN版本号(Qt)
1、获取版本号可在.pro文件加入自动获取动态库或静态库项目的版本号的代码,代码如下VERSION = $$system(svn info -r HEAD . | grep 'Changed\ Rev' | cut -b 19-)!isEmpty(VERSION){ VERSION = $${VERSION}}2、在应用程序中读取版本号若需要在应用程序中读取版本号,则需增加两行代码,便可在应用程序使用“VER"宏来读取版本VERSTR = '\\"$${VERSIO.原创 2021-09-16 16:36:05 · 1131 阅读 · 0 评论 -
Qrencode4.1.1源码交叉编译(arm)及移植
简述:源码文件:zlib-1.2.11.tar.gz,libpng-1.6.37.tar.gz,qrencode-4.1.1.tar.bz2原创 2021-06-15 16:33:56 · 1879 阅读 · 2 评论 -
获取数据库表中所有的字段-Qt
1.sqllite数据库获取sqlite数据库的数据表字段的关键是PRAGMA table_info('tablename')bool outPutTableInfo(QString tabNmae){ QSqlQuery query; QString strTableNmae = tabNmae; QString str = "PRAGMA table_info(" + strTableNmae + ")"; query.prepar.原创 2021-06-08 10:29:16 · 1261 阅读 · 0 评论 -
QML中的信号和函数
简述:在Qt C++中,signals & slots是其核心机制,是应用程序与UI组件交互的神经网络,同样在QML中,也有类似的signal & handler机制,signal信号就是我们常说的一种事件,可通过signal handler信号处理器来处理这个信号。当某个signal信号被发送时,对应的handler信号处理器也被触发,我们就可以在handler信号处理器中做一些事情,来处理这个signal信号事件.1、“HelloWorld”信号简述下面是一个简单的例子.转载 2020-05-17 15:13:48 · 2402 阅读 · 0 评论 -
QML与C++混合编程
简述:QML与C++混合编程就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法。1> Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下,QML就可以访问QObject派生类的成员,例如信号、槽函数、枚举类型、属性、成员函数等。QML访问C++有两个方法:序号 方法 备注 1 在Qt元对象系统中注册C++类,在QML中实例化、访问 可以使C++类在QML中作为一个数据类型 2 在C++中实例原创 2020-05-14 18:47:56 · 2768 阅读 · 6 评论 -
Qt中常用的数据库操作
简述:常用的数据库操作主要有查询、插入、删除等QSqlDatabase创建连接数据库实例,一个QSqlDatabase的实例代表一个数据库的连接。Qt提供了对不同数据库的驱动支持:Driver Type Description QDB2 IBM DB2 QIBASE Borland InterBase Driver QMYSQL MySQL D...原创 2020-04-17 19:41:47 · 5647 阅读 · 1 评论 -
Qt将数据库的表导出为CSV文件
简述:CSV,Comma Separated Value(逗号分隔值),通常都是纯文本文件,以行为单位,每行记录多项数据,每项数据用逗号 来分隔(标准英文逗号)。本文主要介绍将数据库的表导出为CSV文件,支持中文。系统:Qt + linux1、写入CSV文件/** * @brief creatCSVFile() * 创建CSV文件 * @return */......原创 2020-04-17 16:32:44 · 2177 阅读 · 0 评论 -
使用Qt installer framework制作安装包
简述:使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布。这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中。其优势是简单单一,所有的依赖库都集中在一起,其缺点也很明显,可执行程序体量较大,光Qt核心库加起来就得十多兆。(2)制作安装包发布。这种方式的原理也简单,就是将可执行程序和其依赖的库文件一起打包压缩,制作成安装包发布。制作安装包的工具挺多,这里介绍的是Q...原创 2019-10-14 12:23:46 · 1890 阅读 · 0 评论 -
Git使用本地仓库之基本操作
1、Git是什么?一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版原创 2016-07-08 10:49:26 · 51608 阅读 · 4 评论 -
Qt 小知识总结
1、关于 Qt 触摸事件需要确定两点:A . 设备支持touch事件(是触控设备)B . 需要设置窗口属性:setAttribute ( QT::WA_AcceptTouchEvents ) ; // 接收touch消息2、setMouseTrack ( );要想实现 mouseMoveEvent ,则需要在构造函数中添加 setMous原创 2017-04-26 10:25:57 · 2130 阅读 · 0 评论 -
Ubuntu下的run打包
简述:run程序安装包实质上是一个安装脚本加要安装的程序。安装程序的过程就是把它拷贝到相应的目录。1、打包步骤1 > 打包前准备,确定所需要打包的运行文件及其依赖库,详情请参考 Ubuntu下的deb打包、安装与卸载 中1、打包前准备2 > 要打包文件目录结构如下,其中,usr/lib为运行程序LidarPlus的依赖库,usr/src/LidarPlus 运行程序目录。原创 2017-11-16 16:35:25 · 2352 阅读 · 0 评论 -
Qt 插件机制以及插件中几个重要的宏
简述:Qt 插件类必须继承自 QObject 类和插件接口类。若没有 Q_DECLARE_INTERFACE 和 Q_INTERFACES 这两个宏,就无法对从插件中获取的实例指针进行 qobject_cast 映射。可以通过 QPluginLoader 类调用插件类。1、接口类首先,定义一个纯虚类作为插件接口类。原创 2017-06-01 12:13:17 · 5099 阅读 · 1 评论 -
Ubuntu下的deb打包、安装与卸载
简述:deb是Debian Linux的软件包格式,打包最关键的是在DEBIAN目录下创建一个control文件。运行环境:系统:Ubuntu 14.04.5Qt:qt-opensource-linux-x86-5.5.1.run1、打包前准备1 > deb 包原创 2017-11-14 19:29:19 · 55590 阅读 · 5 评论 -
Qt-获取主机网络信息
简述:Qt 中提供了几个用于获取主机网络信息的类,包括QHostInfo、QHostAddress、QNetworkInterface以及QNetworkAddressEntry。通过这几个类获得本机的主机名、IP地址和硬件地址等网络信息。QHostInfo类:查询与特定主机名相关联的主机的IP地址,或者与一个IP地址相关联的主机名。QHostAddress 类:提供一个IP地址,可提供独立于平台和协议的方式来保存 IPv4 和 IPv6 地址。QNetworkInterface 类:负责提供主机原创 2017-10-16 09:24:57 · 3819 阅读 · 0 评论 -
Qt 网络编程-TCP
简述:TCP (Transmission Control Protocol ),传输控制协议,是一种可靠、面向连接、面向数据流的传输协议,许多高层应用协议(包括HTTP、FTP等)都是以它为基础,TCP协议非常适合数据的连续传输。TCP 协议与 UDP 协议的差别见下表:注意:在.pro文件中要添加 QT += network,否则无法使用Q原创 2017-11-11 15:21:26 · 3290 阅读 · 0 评论 -
Qt 网络编程-UDP
简述:UDP(User Data Protocol),用户数据报协议,是一种简单轻量级、不可靠、面向数据报、无连接的传输层协议,可以应用在可靠性不是十分重要的场合,如短消息、广播信息等。适用于以下几种情况:A . 网络数据大多为短消息。B . 拥有大量客户端C . 对数据安全性无特殊要求D . 网络负担非常重,但对响应速度要求高。原创 2017-11-10 15:28:18 · 4614 阅读 · 2 评论 -
Qt中QString与int,char等互转
简述:QString类提供了丰富的转换函数,可以将一个字符串转换为数值类型或者其他的字符编码集。QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble()、toFloat()、toLong()、toLongLong();1、 int, float , double类型 转换为QString有两种方法:A...原创 2017-03-03 16:22:20 · 42214 阅读 · 0 评论 -
QT namespace UI
简述:Qt编程中,会见到类似于如下的声明:namespace Ui { class Dialog; } 那么,为何要这样声明,这样声明有什么好处。这是Qt Designer使用了pimpl手法,pImpl手法主要作用是解开类的使用接口和实现的耦合,即为了减少各个源文件之间的联系。下面详细讲解一下。1、新建Qt 设计师界面类dial转载 2018-02-06 17:09:56 · 4492 阅读 · 1 评论 -
从Qt 4到Qt 5需要修改的地方
1、一般的Qt 4程序要在Qt 5上编译,需要注意:A.将main.cpp文件中的#include 修改为#include B.在.pro项目文件中添加:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets2、在Qt 5中设置应用程序图标,需要注意:A.将.ico图标文件放到项目源码目录B原创 2016-09-02 08:49:52 · 1506 阅读 · 0 评论 -
Linux 小记
目录:1、查看Ubuntu系统查看基本信息2、 Linux系统下如何安装.run文件3、Qt工程从Windows 移植到Ubuntu4、 虚拟机的Ubuntu与本机ping通5、cannot open the disk xxx.vmdk. failed to lock the file6、/lib/ 与/usr/lib,/usr/bin 与/usr/local/bin7............原创 2017-08-23 12:19:09 · 1016 阅读 · 0 评论 -
Qt 解决_CRT_SECURE_NO_WARNINGS及_SCL_SECURE_NO_WARNINGS的问题
简述:关于VS20XX中出现_CRT_SECURE_NO_WARNINGS及_SCL_SECURE_NO_WARNINGS的安全警告处理。1、简单介绍.pro跨平台(Win32/Linux)的写法win32 { #remove safe warning win32:DEFINES += _CRT_SECURE_NO_WARNINGS _SCL原创 2017-03-28 10:37:42 · 2318 阅读 · 0 评论 -
Qt 5单元测试框架
简述:Trolltech 公司提供了QTestLib框架,是一种基于Qt 编写的程序或库的单元测试工具。QTestLib 提供了单元测试框架的基本功能,并提供了针对GUI 测试的扩展功能。1) 在PRO文件中将testlib加入QT参数中。2) 创建测试类:需要继承自QObject(因为要使用信号-槽)。3) 创建测试条目:所有的private slots下函数都将作为测试条目自动测试,并需要一个_data()函数提供数据。4) 创建测试数据:QTest::addColumn()原创 2018-01-02 14:57:01 · 3562 阅读 · 2 评论 -
Qt Creator快捷键
1、快捷键配置进入“工具->选项->环境->键盘”即可配置快捷键。2、常用默认快捷键编号快捷键功能1Esc切换到代码编辑状态2F1查看帮助(选中某一类或函数,按下F1,出现帮助文档)3F2转载 2016-09-08 13:43:46 · 607 阅读 · 0 评论 -
Windows下VTK 7.1.1+VS 2015 +Qt 5.7 msvc2015 配置编译及安装
简述:为了实现RealSense的PCL点云显示,需要VTK支持。由于整个平台在Qt环境实现,VTK编译为Qt插件, QVTKWidget是Qt对于VTK的一个封装。VTK,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。VTK是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2...原创 2018-07-23 15:42:20 · 8103 阅读 · 4 评论 -
Qt多线程通信
简述:1> Qt线程间共享数据主要有两种方式:1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。2)使用singal/slot机制,把数据从一个线程传递到另外一个线程。第一种方法在各个编程语言都普遍使用,而第二种方法是QT的特有的,本文主要介绍第二种。2 >转载 2018-03-03 11:56:03 · 27715 阅读 · 6 评论 -
C++中string、char *、char[]、const char*的转换
简述:1) char*转string:可以直接赋值。2) char[]转string:可以直接赋值。3) char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数。4) string转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数5) string转char*:转载 2018-03-16 13:21:56 · 84171 阅读 · 5 评论 -
Qt 信号与槽
前言:信号和槽用于两个对象之间的通信,信号和槽机制是Qt的核心特征。为了实现对象间的通信,一些工具包中使用了回调(callback)机制,而在Qt中,使用了信号和槽来进行对象间的通信。信号和槽的关联,可以是一个信号对应一个槽,一个信号可以关联到多个槽上,多个信号也可以关联到同一个槽上,甚至,一个信号还可以关联到另一个信号上。如果存在多个槽与某个信号相关联,那么,当这个信原创 2018-02-10 16:00:07 · 1443 阅读 · 0 评论 -
Qt Creator 中使用 Git / Github
Github 是目前最流行的代码仓库,通过Qt Creator可以很方便的访问Github ,下面来看看如何配置。1、下载并安装git首先安装Git(msysGit)最新版是2.10.0下载地址http://git-scm.com/downloads或者https://git-scm.com/downloads/win原创 2016-09-10 16:58:50 · 39665 阅读 · 11 评论 -
Git之使用GitHub搭建远程仓库
引言:在前面,介绍了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;假如是多个人一起来开发一个程序呢?我们需要一个作为服务器的远程仓库!当然搭建一个服务器是需要成本的,为什么不把项目托管到Github上呢?作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现原创 2016-07-08 11:07:25 · 4366 阅读 · 0 评论 -
Ubuntu下编译QGroundControl源码
简述:MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试。QGroundControl可作为无人机地面站。对于QGC3.1.3以后的版本,其编译所需的Qt版本已全面升级为Q原创 2018-01-10 15:14:42 · 2788 阅读 · 0 评论 -
Qt测算程序运行时间
简述:程序运行时间是编程的一项重要指标,在QT中如何测算程序的运行时间呢?废话不多说了,直接附上代码:#include #include #include #include #include void function(); //测试函数 int main(void) { qDebug()<<"----转载 2018-01-02 16:54:27 · 13002 阅读 · 0 评论 -
QT中QWidget、QDialog及QMainWindow的区别
QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口转载 2016-08-18 09:56:38 · 945 阅读 · 1 评论 -
QT中this application has requested the runtime 故障解决办法
系统:Win7 32bitQt 版本:qt-opensource-windows-x86-android-5.5.0安装完成后,新建名为helloworld的Qt quick工程,运行该项目时,出现以下故障 故障情况如下1、Microsoft Visual C++ Runtime Librarythis application has requested the runti原创 2016-08-08 11:27:51 · 52975 阅读 · 0 评论 -
QSettings操作配置文件及Qt获取系统相关位置
简述:用Qt编写界面时,你希望本地信息可保存,可以使用轻量级数据库sqlite,也可使用QSettings读写配置文件。QSettings类提供“持久性”、平台独立的应用程序设置,即程序关闭后QSettings把窗体大小,位置,用户设置的Option 保存起来,下次打开程序时再重新加载。1、QSettings配置文件的路径① QSettings配置文件的路径使用原创 2017-03-29 12:00:03 · 10098 阅读 · 0 评论 -
QProgressBar
简述:Qt提供了两种显示进度条的方式:一种是QProgressBar,提供了一种横向或者纵向显示进度的控件表示方式,用来描述任务的完成情况;另一种是QProgressDialog,提供了一种针对慢速过程的进度对话框表示方式,用于描述任务完成的进度情况。标准的进度条对话框包括一个进度显示条、一个取消按钮及一个标签。1、 QProgressBar基本用法原创 2017-03-13 08:41:34 · 11616 阅读 · 3 评论 -
Q_PROPERTY
简述:Q_PROPERTY() 是一个宏,用来在一个类中声明一个属性property,由于该宏是qt特有的,需要用moc进行编译,故必须继承于QObject类。1、Q_PROPERTY宏定义格式Q_PROPERTY宏定义格式如下:Q_PROPERTY(typename READ getFunc原创 2017-03-28 15:18:31 · 2558 阅读 · 0 评论