草庐IT

Qt开发上位机软件建立经典蓝牙通讯

Qt开发上位机软件建立经典蓝牙通讯之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码,作为分享开发环境我使用的Qt版本是5.15,使用的CMake构建项目。整体开发使用的IDE是QtCreator,采用的方式是基于widgets的ui设计界面、C++写逻辑的方式。编译使用的是DesktopQt5.15.2MINGW64-bitCMake配置经典蓝牙通讯需要用到Qt的蓝牙模块,需要添加Bluetooth模块:find_package(QTNAMESQt6Qt5REQUIREDCOMP

Qt开发上位机软件建立经典蓝牙通讯

Qt开发上位机软件建立经典蓝牙通讯之前做了一个具有经典蓝牙通讯功能的Windows上位机软件,在网上学习了相关博客以及参考了官方经典蓝牙例程之后,总结出了使用Qt建立经典蓝牙通讯的步骤,附带相关源码,作为分享开发环境我使用的Qt版本是5.15,使用的CMake构建项目。整体开发使用的IDE是QtCreator,采用的方式是基于widgets的ui设计界面、C++写逻辑的方式。编译使用的是DesktopQt5.15.2MINGW64-bitCMake配置经典蓝牙通讯需要用到Qt的蓝牙模块,需要添加Bluetooth模块:find_package(QTNAMESQt6Qt5REQUIREDCOMP

关于QT纯代码创建UI的方法和注意事项

前言温故而知新。之前新学QT时没怎么注意纯代码创建UI的写法,今天尝试着写了一下,却发现就一个简单的布局,总是显示不出来。所以索性研究了一下#include"ui_mainwindowtest.h"QTCreator自动编译生成的代码,将一些个人收获总结如下。一、QT的UI头文件里有什么?之前一直没注意,仅是创建了一个空白窗口,它的ui头文件里就出现了这么多代码。现将个人见解以备注地形式写在上面。#ifndefUI_MAINWINDOWTEST_H#defineUI_MAINWINDOWTEST_H#include#include#include#include#include#include

关于QT纯代码创建UI的方法和注意事项

前言温故而知新。之前新学QT时没怎么注意纯代码创建UI的写法,今天尝试着写了一下,却发现就一个简单的布局,总是显示不出来。所以索性研究了一下#include"ui_mainwindowtest.h"QTCreator自动编译生成的代码,将一些个人收获总结如下。一、QT的UI头文件里有什么?之前一直没注意,仅是创建了一个空白窗口,它的ui头文件里就出现了这么多代码。现将个人见解以备注地形式写在上面。#ifndefUI_MAINWINDOWTEST_H#defineUI_MAINWINDOWTEST_H#include#include#include#include#include#include

windows、Ubuntu安装QT时经常出现“无法下载存档……”解决办法

说明:以windows为例,ubuntu操作一样下载好exe执行文件,双击执行时,经常出现下图提示“无法下载存档……”,是由于默认使用的是境外源,有两种解决方式;方式一:挂魔法在线安装方式二:使用国内源清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/北京理工大学:http://mirror.bit.edu.cn/qtproject/中国互联网络信息中心:http://mirror.bit.edu.cn/qtproject/在qt的exe文件目录内右键-->在终端打开打开终端后在输入下面的命令(我的4.5.2版本,需换成你自己的exe可执行程序),回车后

Qt 绘制表白爱心【李珣表白爱心】

Qt绘制表白爱心【李珣表白爱心】通过QtPainter进行绘制,具体实现可以参考B站爱心绘制实现1.functions.h#include#include#defineIMAGE_ENLARGE15//心形函数QPointFheart_function(qrealt,qrealshrink_ratio=IMAGE_ENLARGE){qrealx=16*(sin(t)*sin(t)*sin(t));qrealy=-(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t));x*=shrink_ratio;y*=shrink_ratio;returnQPointF(x,y

QT解决报错registered using qRegisterMetaType()

在qt日常使用中,信号与槽机制是绝对不可或缺且常用的,其中的参数一般都会比较简单,bool、int、QString之类的,但当我们想要传递相对比较复杂的参数,例如QVector、QList,以及一些我们自定义的结构体时,就会出现报错:>QOBject::connect:Cannotqueueargumentsoftype'QVector'>(Makesure'QVector'isregistedusingqRegisterMetaType().)原因大概就是信号槽的参数不支持你自定义的类型,只能识别QT库中最基本的类型参数,所以需要对自定义类型进行注册qRegisterMetaTypeQVec

QT非UI线程更新UI(跨线程更新UI)

笔者最近在弄一个QT的一个小工具,需要把日志格式化输出,但是方法的执行过程是耗时的,如果不自己进行处理就会阻塞主界面,瞬间降低软件的使用体验。所以通过查资料发现QT的信号传递更新UI非常好用,记录一下,也给碰到类似问题的小伙伴直接提供一个参考。首先,另起的UI线程需要自己重写类继承Qthread线程基类,需要Q_OBECT宏具体代码如下(我这里新建的命名位XThread的类)XThread.h如下#includeclassXThread:publicQThread{Q_OBJECTpublic:XThread();protected:voidrun();signals:voidtoUI(QSt

Qt安装工具MaintenanceTool安装插件出现无法下载存档的解决方法

问题背景:在移植Qt项目时,代码中出现头文件QTextCodec无法找到的错误(QTextCodec是Qt5中的类,Qt6删除了该类),我使用的是Qt6版本,查阅解决方法,找到的方法要在Qt安装工具MaintenanceTool中添加组件Qt5CompatibilityModule遇到的问题: 1、点击添加或移除组件都会出现提示:YourMaintenanceToolappearstobeolderthan3.0.2PleaseupdateitfirsttogetaccesstonewQtpackages 2、添加组件,在下载的过程中出现:无法下载存档http://download.qt.io

使用 Qt for Android 获取并利用手机传感器数据(下篇)使用C++实现功能

在上一篇,我们搭建了开发环境。本篇,使用C++代码真正实现功能。我们使用UDP协议从手机上指定发送的目的地、端口。效果如下图,完整工程参考https://gitcode.net/coloreaglestdio/qtcpp_demo/-/tree/master/android/sensors2pc:移动端1移动端2桌面1.在PC端实现程序并调试我们建立一个Qt的Widgets程序,添加position,sensors模块。界面里支持设置目的地址、端口。界面里可以设置GPS与各个传感器的刷新速度。传感器使用Qt枚举,并创建刷新函数。传感器的主对话框类如下:#ifndefDLGSTP_H#defin