切换马甲
上一页
下一页
分类专栏
-
48篇
默认分类
文章数:48
文章总阅读量:38.6w
文章总收藏量:768
文章总点赞量:1.2w
按发布时间
按阅读量
按点赞量
-
Qt可悬浮工具按钮 仿制360悬浮按钮,可以在软件呢随意移动的悬浮按钮: 原理: 控件置顶,重写点击事件、移动事件,在鼠标点击移动事件中监控鼠标位置,鼠标点击移动时将控件移动到鼠标的位置。 代码实现: #ifndef QToolButtonEx_H #define QToolButtonEx_H #include <QPushButton> #include <QMouseEve2020-09-20 21:39:520 0 9702
-
qt中SQLite基本使用 SQLite数据库,是一款轻型的数据库,比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快,不需要server,可以集成在软件中。在Qt自带SQLite库,所以在Qt中使用SQLite数据库是非常方便的, 添加SQL模块: 在Qt项目文件中(.pro)添加SQL模块 QT += sql 需要使用的头文件: 1#includ2020-09-20 21:47:250 0 5038
-
QT 蓝牙通讯协议浮点数传输 协议间传输数据都是以字节流的形式传输的,但是有时候需要传输浮点数,这时候通常的办法是扩大倍数成整数传输,本片文章介绍的是另一种方式,联合体: union floatingDecimal{ uint8_t i[4]; float f; }; 定义floatingDecimal 类型变量: floatingDecimal var; 赋值 Var.f =2020-09-20 22:00:550 0 5084
-
Qt程序打包 Qt程序开发完成后直接拷贝到别的地方是没法用的,不是因为程序出错了,而是缺少支持库,我们需要将程序所需要的库一起打包才可以使用。 首先在开始菜单栏中找到Qt命令行工具,打开命令行工具: 我这里使用的是MSVC2017 32 然后输入命令找到项目生成目录: 输入打包命令: windeployqt *****.exe 回车运行命令,这样就会生成程序所需要的库 生成完成之后再到项目2020-09-20 22:17:042 0 3235
-
Qt背景色修改的三种方式 Qt开发过程中需要对系统控件背景色进行自定义修改,接下来总结一下控件修改背景色的三种方式。 一、使用样式表修改 QLabel Label = new QLabel(this); Label ->setStyleSheet ("background-color: rgb(0,0,0);color: rgb(255,255,255);"); 使用样式2020-09-23 22:47:303 0 4975
-
Qt程序单例运行 可执行文件正常情况下是可以打开多个,多个同时运行,但是有些情况下必须只可以单例运行。 Qt程序单例运行的实现方法:使用qtsingleapplication。 qtsingleapplication位置: Qtsingleapplication在Qt的安装路径下可以找到。 本地找不到也可以从网上下载: https://www.iteye.com/resource/shaoyiju2020-09-23 22:51:550 0 4853
-
Qt打印Log文件 在Qt开发过程当中经常使用qDebug等一些输出来调试程序,但是到了正式发布的时候,都会被注释或者删除,采用日志输出来代替。实际上qDebug的一些调试可以不用全部注释,留一些关键的调试信息用于程序运行时打印到日志文件中,想要使用qDebug打印日志到日志文件中只需要使用“qInstallMessageHandler”注册打印函数就可以了。 Qt提供了5个全局函数用于输出调试或2020-09-23 22:57:243 2 4352
-
Qt自定义控件圆角 Qt中绘制圆角有两种方法:样式表、绘图事件自绘圆角 一、样式表: setStyleSheet(“QWidget{border-radius:5px;}”)); 使用的主要是使用border-radius 属性,关于这个属性,可选的样式有 border-top-left-radius 设置左上角圆角; border-top-right-radius 设置右上角圆角; border2020-09-23 23:07:371 0 5976
-
QMap是一个键值对类,跟标准C++的map类基本类似,声明原型如下: QMap<T1,T2> map1 T1为键值对中的键key,T2为键值对中的值。通过键值对中的键可以搜索到值。一般来说,键值对中的键是唯一的,不可重复,而值没有要求,可以重复。并且QMap具有自动排序功能,对输入的键进行排序。 Qt的键值对容器都是自带排序的,直接上代码 #include <QMap>2020-10-28 22:51:5015 8 8918
-
Qt中实现C++线程操作一(使用线程) 一般来说每个操作系统或者是开发IDE都会提供线程API。但是本篇文章介绍的不是操作系统或者IDE提供的线程API,而是C++的线程库,自C++11开始后C++有了标准的线程库:std::thread,各种支持C++11及更改版本的IDE都可以使用,便于是使用C++开发多线程库供多平台使用。 话不多说,直接上代码简单明了: 例程1: #include <2020-10-28 23:03:5919 3 6615
-
Qt中实现C++线程操作二(线程同步) 线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏。 下面是多个线程同时修改同一数据造成破坏的例子: #include <thread> #include <iostream> int count = 0; void f1(){2020-10-28 23:08:5312 3 4314
-
Qt表格读写(CSV格式) CSV文件是文本类型的数据文件,因此具有读写速度快、格式相对标准等特点,适用于多种场合的数据读写及分析。CSV文件也叫逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 Qt中CSV格式读写: void read(){ QString fileName2020-11-12 21:39:29891 42 19238
-
Qt可变数组与数组 软件开发过程中经常使用数组存储数据,使用数组非常方便快速,可以通过下标快速的增删改查。但是使用数组有个问题,就是数组的空间需要提前开辟好,当我们不知道自己需要存储多少数据时就需要提前开辟一个很大的数组,或者存储空间不够时重新开辟新的数组,但是提前开辟一个很大的数组会浪费空间,重新开辟操作有很耗时,这时候就需要使用到可变数组。 数组例子: int main(int argc, c2020-11-12 21:47:173289 43 17140
-
Qt相册实现 qt软件中相册的实现,以下内容只介绍了相册的缩略图分功能。 实现原理: 1.定义一个QListWidget对象 2.设置ViewMode等属性 3.定义单元项并添加到QListWidget中 4.调用QListWidget对象的show()方法 代码: //选择文件对话框,选择照片 //定义文件对话框类 QFileDialog *fileDialog = new Q2020-11-12 21:51:542421 42 8954
-
Qt自定义信号 Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法。作为一种通用的处理机制,信号与反应槽非常灵活,可以携带任意数量的参数,参数的类型也由用户自定。同时其本身也是类型安全的,任何一个从QObject或其子类继承的用户类都可以使用信号与反应槽。 Qt类中想要实现发送信号必须继承QObject2020-11-12 21:55:564232 455 15247
-
libusb开发通讯问题 本篇文章继续记录使用libusb通讯是遇到的问题 问题描述: 使用libusb与一台新的虚拟串口下位机通讯,扫描、打开、关闭都是正常的,就是无法收发数据,也没有报错,这是为什呢,检查了usb驱动,虚拟串口驱动已经被安装成usb驱动,没有问题,我又换一种虚拟串口的设备试一试,没有问题,所以代码是没有错误的,是不是有哪些设置没有设好,这里暂且称两台设备为A(使用libusb无2020-11-24 23:02:4177 16 8753
-
Qt定时器的两种实现方式 Qt中定时器使用有两种,一种是QObject的定时器,一种是QTimer的定时器 QObject: QObject中的定时器的使用,需要用到三个函数 1、 int QObject::startTimer ( int interval ) ; 这个是开启一个定时器的函数,他的参数interval是毫秒级别。当开启成功后会返回这个定时器的ID, 并且每隔interval2020-11-24 23:06:5995 55 8056
-
Qt获取当前时间 时间日期是经常遇到的数据类型,Qt 中时间日期类型的类如下: QTime:时间数据类型,仅表示时间,如12:12:13。 QDate:日期数据类型,仅表示日期,如2020-11-21。 QDateTime:日期时间数据类型,表示日期和时间,如2020-11-22 12:12:13。 使用QDateTime类(毫秒精度) QDateTime current_date_time =2020-11-24 23:10:1424 5 10627
-
Qt获取系统信息 在开发过程中经常会遇到需要知道系统信息的时候,比如:屏幕尺寸、系统版本、语言信息等,本篇文章简单的分享一下我对这些内容的封装 #ifndef STYSTEMINFO_H #define STYSTEMINFO_H #include <QRect> #include <QDesktopWidget> #include <QApplication>2020-11-24 23:11:5325 5 7752
-
Qt启动界面 软件启动时常常会因为加载很长时间从而导致软件打开要好长时间,而这段时间是没有界面显示的。程序可能启动较长时间后,窗口才会显示出来,用户很容易会抱怨程序响应的慢。为了改善用户体验需要添加启动界面,启动时打开一个界面,等到主界面加载完成后关闭启动界面打开主界面,一般启动界面是一张启动图片。 QT提供了QSplashScreen 类,其使用方法比较简单,下面的例子就是,当程序运行到 spl2020-11-24 23:15:3526 4 6984