Qt相关
文章平均质量分 54
韭菜钟
这个人很懒,懒得写简介
展开
-
Qt使用OPCUA
但是在Qt6之前,假如想使用这个库,还得自己编译,比较繁琐。假如想开箱即用,而且没有使用太复杂的功能的话,其实可以直接使用open62541.h、open62541.c这两个文件。假如想在Qt下使用OPCUA通讯,貌似大家都是倾向于使用。然后就可以参考官方的例程来进行开发了。原创 2024-04-28 14:40:09 · 186 阅读 · 0 评论 -
Linux下Qt生成程序崩溃文件
Linux下程序的崩溃文件生成相对于Windows下还方便一点(Windows下还得自己保存dmp文件),可能各有千秋吧。暂时还没试过在A电脑编译程序,然后放到B电脑运行产生core文件,然后再拿回A电脑进行代码定位。有空的话得测试一下。【Linux生成core文件相关配置,core文件调试示例】【【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?原创 2024-04-03 15:26:25 · 906 阅读 · 0 评论 -
在Qt中解决opencv的putText函数无法绘制中文的一种解决方法
查了一些资料,说想要解决这个问题,需要用到freetype库或者用opencv5(详情请查看文末的参考资料)。那我Qt也是第三方库啊,还倒不如直接用Qt实现呢。于是,我实现了一个myPutText函数。原创 2023-11-02 11:24:25 · 1090 阅读 · 1 评论 -
Qt的WebEngineView加载网页时出现Error: WebGL is not supported
当我在qml中使用WebEngineView加载一个网页时,出现以下错误:其实这个问题在Qt的帮助文档中已经提及了解决办法:因此,可以按照下面的步骤操作一下:在项目的pro文件中,引入模块2.2.在main.cpp文件include相应头文件,然后执行手册中提到的三行代码:原创 2023-10-06 09:19:44 · 847 阅读 · 0 评论 -
在qml中将一个16进制表示的颜色加上透明度
在qml中,我们在指定控件的颜色时,可以直接通过16进制的字符串来表示,比如"#ff0000";这里提供一个函数,直接输入基础颜色以及其透明百分比,就可以返回对应的颜色。但是假如要在此颜色的基础上,加个透明度的话,就要重新计算一番,比较麻烦。这种方式也比较符合UI设计人员的使用习惯。原创 2023-09-15 14:01:54 · 246 阅读 · 0 评论 -
Linux下QtCreator勾选Use root user后出现error while loading shared libraries的问题
在linux下调试程序时,有时候需要取得root权限才能连接操作某些设备。之前我是通过脚本方式来进行的。但是这样有个问题,无法断点调试,出了问题,不好找问题发生的地方。但是假如你不采用脚本的方式,而是启动它默认的可执行程序+勾选Run as root user的话,它会出现error while loading shared libraries的问题。哪怕你已经设置好环境变量LD_LIBRARY_PATH了。原创 2023-08-08 12:55:06 · 634 阅读 · 0 评论 -
Qt获取本机唯一码(UUID)
这里给出一个获取电脑的UUID的方式,可以运行在windows、linux下。它和系统的硬件相关,但是又不完全相关。在生成软件序列号时,常常需要想办法区分不同的机器,防止别人购买了一个激活码就到处可以用。但是假如利用cpu_id、mac地址等,又会遇到一些问题(相同、修改等等)。原创 2023-07-11 16:34:46 · 1785 阅读 · 4 评论 -
Qt5.15.2安装Android开发环境。
现在(20230617)利用QtCreator来配置android开发环境还是挺方便的。基本三步搞定(不过你要先安装好Qt)。原创 2023-06-17 16:55:45 · 2423 阅读 · 8 评论 -
QtWebAssembly下使用iframe无法加载第三方网站的问题
但是你把编译出来的东西。原创 2023-04-26 15:16:08 · 308 阅读 · 6 评论 -
Ubuntu下打开QtCreator,环境变量(PATH、LD_LIBRARY_PATH等)与预期不一致的问题
在Ubuntu中,安装好Qt之后,可以在系统桌面的左下角找到启动图标但是,这种方式启动的QtCreator所读取到的环境变量和我们从命令行读取到的不一致:可以看到,明显少了这个:/opt/ros/humble/bin因为这个原因,导致我在用cmake编译时一直出问题。原创 2023-04-20 17:01:45 · 1538 阅读 · 3 评论 -
ROS2中将octomap发布到Moveit中作为碰撞物体
这里假设你已经装好了ROS2以及Moveit2(都用二进制安装就行,不用从源码安转),没有安装好的,可以按照鱼香ROS的教程安装,两三行命令就搞定了。我的ROS2版本为humble,请根据你使用的实际版本替换。安装pcl安装octomap相关库下面这个也安装一下。原创 2023-04-08 18:21:10 · 2070 阅读 · 12 评论 -
用Qt编写STM32烧录软件(ISP模式)代码
之前写了一篇,但是在文中没有具体的实现代码。现在补上,各位有兴趣的同学可以参考以下。但是代码里面还有很多没有完善的,必定会存在一些bug,目前只是堪堪能用。假如要正式投入使用的话,自己一定要经过充分测试。原创 2023-04-06 16:36:36 · 1338 阅读 · 3 评论 -
尝试对MoveIt2的轨迹进行插值控制舵机机械手
机械手在运动时,要尽可能平稳、少冲击,显得丝滑。Moveit给到的轨迹,除了描述了各个关键时刻的各个关节的位置,还描述了此时的各个关节的速度、加速度。假如我们的执行机构可以完全按照这些位置、速度、加速度来进行操作,理论上就可以实现平滑的移动。但是由于我们目前用的是舵机,除了位置可控外,速度、加速度都不能直接控制。所以,只能通过插值来插补两个位置之间的各个小位置,让运动大概实现【加速-匀速-减速 】的过程。舵机的转动速度会因为负载的不同而不同,不能够简单认为是一个固定值。原创 2023-04-05 17:14:15 · 882 阅读 · 15 评论 -
ROS2中用MoveIt2控制自己的舵机机械手(3)
经过上面的操作,舵机就基本在我们的掌控之中了。下一步就可以通过串口建立电脑与stm32的通讯,从而实现电脑上发送相应的指令控制任意舵机的转动角度。原创 2023-03-24 11:24:45 · 1838 阅读 · 10 评论 -
用Qt编写dll时的多语言实现
一般我们在写一些大型的项目时,会将系统功能分为多个子功能模块进行实现。各个子功能可以单独由某个人来实现,然后将其导出为dll文件。主程序再导入这些dll,使用其功能。而有多语言要求时,子模块的负责人除了提供dll外,还可以提供其模块对应的ts/qm翻译文件,以供主程序进行多语言切换处理。原创 2023-04-03 13:25:41 · 571 阅读 · 0 评论 -
ROS2中用MoveIt2控制自己的舵机机械手(5)
该机械手在执行MoveIt规划的路径时,会一卡一卡的,主要是因为两方面的原因:1.机械结构松散、2.执行路径时没有进行插补。主要原因是插补、反馈问题,后面再慢慢完善了。总之,暂时告一段落了。原创 2023-04-02 11:10:32 · 1929 阅读 · 3 评论 -
在Qt中调用MoveIt时出现Ogre::xxx错误
经过查找,发现是ros2里面的moveit_visual_tools,和moveit源码编译的moveit_visual_tools冲突了。可能是我什么时候安装了二进制的moveIt。然后再设置库的路径。原创 2023-02-06 16:52:49 · 228 阅读 · 0 评论 -
在QtCreator中先执行自定义命令再执行程序
先建立一个类似这样的脚本放在可执行文件所在文件夹下(具体内容要根据实际情况来定):run.sh# 2.改变run.sh的权限。原创 2023-02-06 15:20:09 · 623 阅读 · 0 评论 -
Qt项目包含多个qrc资源文件,导致资源无法被读取的问题的解决
经过排查、测试,最后发现,需要将不同项目、子项目的资源文件的名字改成不一样才行,不能都用resource.qrc这个名字。比如可以改成这样:主项目的资源文件改成mainResource.qrc、子项目A的的资源文件改成aResource.qrc等等。但是在debug模式下,会提示找不到某些qml文件。在主项目的pro文件中,有一个resource.qrc文件,该文件里面包含了许多qml、图片等其他资源。在pro文件中,通过pri文件引入了子项目,子项目中又有自己的resource.qrc文件。原创 2022-12-23 17:25:50 · 812 阅读 · 0 评论 -
Qt关键字(signal、slot等)与第三方库中的函数、变量冲突的解决办法
然后在编译的时候,报错说什么语法错误。大概看了一下主要是Qt将这个结构体的emit函数识别成Qt的信号发射关键字emit了。但是这样其他类中的emit、signal、slot又不能用了,要改成Q_EMIT之类的,严重影响使用体验。同事在Qt环境下开发,使用第三方库(好像是什么tbb的库)时,里面有这样的一个结构体。它里面提到了一个解决办法。一开始找到的解决办法是。原创 2022-12-12 09:36:10 · 748 阅读 · 0 评论 -
Qt中自定义及控制qDebug的输出
在我们把自己的函数封装成库,然后给别人用时,别人很可能会看到我们库中使用qDebug()打印出来的信息。这些信息一方面会干扰别人自己的输出,另一方面也会暴露自己库的一些细节。但是有时候又的确需要这些信息。这里,我是自己实现了一个debug类,用法也是类似qDebug()那样。因此,最好有个开关来控制自己库的信息的打印。原创 2022-11-02 16:29:16 · 878 阅读 · 7 评论 -
Qt将xls文件另存为xlsx
需要注意的是 QAxObject接收的是必须是文件的绝对路径,所以最好用 QFileInfo(xlsFile).absoluteFilePath() 处理一下。方式是通过 QAxObject 调用excel打开原来文件,然后另存为。原创 2022-11-01 09:33:43 · 541 阅读 · 0 评论 -
Qt的lambda槽函数的注意事项
Qt中的lambda槽函数使用时做好带context原创 2022-10-14 22:18:58 · 571 阅读 · 1 评论 -
openEuler(CentOS 7)下 /libQt5WebEngineCore.so: .dynsym local symbol at index 的解决
openEuler centos libQt5WebEngineCore.so: .dynsym local symbol at index原创 2022-09-22 13:56:26 · 2106 阅读 · 0 评论 -
Qt下生成pdb文件,并在exe崩溃时生成dmp文件,且由dmp查询崩溃原因
Qt在windows下dump文件bug溯源原创 2022-09-21 22:36:27 · 3351 阅读 · 9 评论 -
基于SVG,在网页中绘制自适应居中图片及图片检测框
利用svg在前端目标检测框图原创 2022-08-29 17:42:18 · 665 阅读 · 0 评论 -
qt5.12.9编译32位的qtwebengin模块
qwebengine播放视频原创 2022-08-15 00:51:37 · 1151 阅读 · 0 评论 -
Qt编写iphone信息读取(验机)工具
https://www.jianshu.com/p/a282fbcafaadhttps://www.cnblogs.com/xiyuan2016/p/7736973.html主要用libimobiledevice原创 2022-07-06 16:21:39 · 1267 阅读 · 0 评论 -
使用QtCreator时,无需将dll拷贝到build文件夹中的办法
在使用QtCreator调试项目时,无需拷贝dll。原创 2022-06-30 17:35:25 · 907 阅读 · 0 评论 -
Qt利用AES加密数据发送给springboot(java)服务器解密
背景目前用Qt和同事(他做服务器端)做一个第三方账号登录的东西:用户在本地客户端输入账号和密码后,客户端将密码进行对称加密,将数据post给服务器。服务器接收到数据之后,对密码进行解密,得到明文,然后用该账号+密码进行第三方平台登录。问题(重点、难点)无论是DES还是AES,不同的平台下,或者不同的人所实现的库一般很难对接上。尤其是那个DES,有一堆可自定义的初始化数据,一旦有一个参数没对上,那就差之千里了。解决方案java使用HutoolQt使用QtAesjava那边官方好像有自带的加解原创 2022-05-18 14:30:29 · 552 阅读 · 0 评论 -
Qt串口QSerialPort的多线程 及 QSerialPort的waitForReadyRead函数的问题
在官方的文档中提到,QSerialPort是不支持跨线程调用。因此不能在主线程(UI线程)创建QSerialPort,然后传递个指针给子线程,然后在子线程中执行耗时的发送任务。最好的方式是在子线程里面创建QSerialPort,然后通过信号槽来使用。但是我想偷个懒,我已经在主线程创建了QSerialPort,并且界面相关的东西都做好了,不想改动太大,因此我想了个办法:在新线程里面建立一个临时对象,复制传递进去的串口参数,执行完就干掉他。void MainWindow::on_pushButton_原创 2021-12-08 11:22:13 · 15894 阅读 · 9 评论 -
Qt在windows下,在webgl platform下运行
假如要在webgl下运行的话,要求Qt程序必须是qml程序,普通的widget程序是不行的。在部署exe的时候,1.用windeployqt一下2.拷贝必要的QtQml、QtQuick、QtQuick.2等文件夹3.拷贝bin目录下的必要的dll文件然后执行在命令行中:xxx.exe -platform webgl:port=12345...原创 2022-04-28 11:18:36 · 658 阅读 · 8 评论 -
Qt解决在windows平台下高DPI屏幕异常显示的问题,及全屏截图问题
Windows dpi 截图原创 2022-03-08 17:24:48 · 1089 阅读 · 0 评论 -
QtWebAssembly实现中文输入
中文输入,Qt, webAssembly原创 2022-02-21 14:52:11 · 1745 阅读 · 3 评论 -
Qt使用ffmpeg
最终,还是逃不过要使用这个,一直看到却一直没正式了解它的库:ffmpeg。这个库简单的说就是用来对视频进行各种处理的:读取、格式转换、播放等等。目前我是在windows下,在Qt里面使用它的。首先,到这里下载(通过官网也可以跳转到这里)。我下载的是 ffmpeg-n4.4-latest-win64-lgpl-shared-4.4。你可以根据自己的需求下载。然后在Qt里面引入库以及头文件INCLUDEPATH += D:/Qt/ffmpeg/ffmpeg-n4.4-latest-win64-lgp原创 2022-01-12 14:52:02 · 7980 阅读 · 0 评论 -
Qt webAssembly 调试相关
1.浏览器静态缓存。在用浏览器打开我们重新编译(且部署)好的网页时,很有可能会发现还是旧的页面。这可能是因为浏览器的静态缓存的问题(也就是对于一些比较大的文件,浏览器会将其缓存下来,下次再加载这个页面时,就直接用这个缓存的,不从服务重新下载了。很不幸,wasm文件就是这些被缓存的文件之一)。要处理的话,就是清理一下浏览器的缓存。edge的清理方式为: 历史记录–》清理浏览数据...原创 2021-12-28 15:40:19 · 1887 阅读 · 0 评论 -
关于QFile的独占问题(windows)
QFile无法实现对一个文件进行独占(即只允许本程序本QFIle对象进行操作,其他对象,其他程序都无法对其操作)打开。测试代码如下: QString fileName = "../123.txt"; QFile *file = new QFile(fileName); if(file->open(QFile::Append | QFile::WriteOnly | QFile::Unbuffered)) { qDebug() <<原创 2021-12-16 15:13:40 · 1263 阅读 · 0 评论 -
QVariant的二进制化(序列化)
在某些使用场景下,需要通过tcp/ip,websocket等方式在两个程序之间进行通讯。而在进行通讯时又希望使用到QVariant的便利,就可以通过序列化技术。在程序A中将QVariant进行序列化得到二进制数据,然后将数据发给另外一个软件,然后让其解包使用。 //数据缓存 QByteArray buffer;// QDataStream stream(buffer); //报错 QIODevice::write (QBuffer): ReadOnly device原创 2021-12-15 09:35:45 · 2197 阅读 · 0 评论 -
Qt串口拔插监控
参考:https://www.cnblogs.com/yinwei-space/p/10655371.html主要利用Qt的本地事件过滤器。bool QAbstractNativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result)他这个过滤器本身是支持跨平台的,所以也不用过于担心代码的跨平台问题(但是,还是需要根据eventType来人工区别对待)目前我想做个w原创 2021-12-06 10:50:22 · 1542 阅读 · 3 评论 -
Qt实现在线升级 + Qt编译出来的程序打包成一个exe
最近在做软件的在线升级。流程大概是这样:软件检测到服务器有新的更新包–》软件将新的更新包下载下来(压缩包)–》利用QProcess启动写的升级程序(并且通过argc、argv传递必要的参数),且关闭自己–》升级程序解压压缩包(用quaZip)、覆盖原来的文件,完成升级–》升级程序也通过QProcess启动更新后的程序,然后关掉自己;此时我的更新程序是和主程序放在一起的,两者调用的是一样的Qt的dll。假如单单是更新exe文件的话,这样没问题。但是假如要连dll都要更新,比如从Qt5.12更新到Q原创 2021-12-02 17:01:24 · 2713 阅读 · 4 评论