![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt相关
文章平均质量分 58
韭菜钟
这个人很懒,懒得写简介
展开
-
QtWebEngineView加载本地网页
直接加载放在exe同级目录下的资源是不行的,需要把资源通过qrc放到exe里面,然后通过类似。运行网页中包含的脚本,还可以取得返回值。这样的路径加载才行。原创 2024-08-23 15:19:30 · 211 阅读 · 0 评论 -
如何对open62541.h/open62541.c的UA_Client进行状态(在线/掉线)监控
可以发现,我们可以对UA_ClientConfig中的stateCallback进行赋值,也就是注册一个状态回调函数,从而获取客户端的状态变化。上位机这边会定时对PLC的某个opcua变量进行写操作。目前在利用open62541.h/open62541.c编写了一个与PLC进行OPCUA通讯的上位机程序。这个opcua库对多线程的处理比较差,很容易造成冲突。有没有什么办法可以监控client的状态,了解其是什么时候掉线,掉线了我就不写就行了。幸亏,是有这么一个回调函数的,参考官方的例子。原创 2024-08-12 15:05:14 · 315 阅读 · 1 评论 -
使用Qt3D绘制机械手场景
之前是使用Coin3D来绘制机械手场景的【Qt利用Coin3D(OpenInventor)进行3d绘图】。后来需要在HarmonyOS显示这个机械手模型,但是想要编译Coin3D到HarmonyOS的话,显然太难了。然后尝试使用OpenGL原生的函数来绘制,但是HarmonyOS对很多函数都不支持,一查,发现HarmonyOS支持OpenglES。那就麻烦了。最后,一番兜兜转转,还是用回Qt3D吧。原创 2024-07-31 14:41:32 · 295 阅读 · 0 评论 -
利用git将Qt代码托管到U盘或者网盘
我们在开发项目时,随着项目需求的增加以及bug的修复,肯定会涉及到版本管理的问题。由于git的使用具有一定的门槛,之前我都没怎么用。基本没有怎么进行版本管理,而是周期地(比如每天)把代码压缩打包备份一下,然后将他们放到网盘中,如下图所示:但是这样没办法迅速、明确地知道自己两个不同的备份之间有那些不同,尤其是想回退到某个特定的版本时,简直就是噩梦。而git就能很好地进行版本管理。说到git,肯定就有人想到github了。但是有一些代码是不方便外传的;又或者出于谨慎,只想把代码备份到U盘的;原创 2024-07-05 17:06:35 · 709 阅读 · 0 评论 -
Qt(MSVC)下报“语法错误缺少“}““语法错误缺少“常数“ 的解决办法
只要把这个头文件放在QtHttpServer的后面就可以了。经过一番排查,发现了问题。是open62541.h的问题。后面我知道了,再更新上来。我记得之前我用得好好的啊。原创 2024-07-03 14:03:13 · 330 阅读 · 0 评论 -
Qt利用Coin3D(OpenInventor)进行3d绘图
首先,到官网下载我是Qt5.15.2+vs2019的,因此我选择这个coin-4.0.2-msvc17-x64.zip到官网下载Coin3D在Qt中的封装库我是Qt5.15.2+vs2019的,因此我选择这个quarter-1.2.1-Qt5.15-msvc17-x64.zip将这两个压缩包放在在同一个文件夹中,先解压coin-4.0.2-msvc17-x64.zip,然后再解压。原创 2024-06-19 15:42:51 · 793 阅读 · 0 评论 -
在Qt编写的exe或者dll中设置版本号
在别人编写的exe或者动态库中,通过右键–》属性–》详细信息中,通常都有版本信息:那我们自己编译出来的Qt程序,如何设置这些版本号呢?原创 2024-06-17 14:17:28 · 730 阅读 · 0 评论 -
Qt使用OPCUA
但是在Qt6之前,假如想使用这个库,还得自己编译,比较繁琐。假如想开箱即用,而且没有使用太复杂的功能的话,其实可以直接使用open62541.h、open62541.c这两个文件。假如想在Qt下使用OPCUA通讯,貌似大家都是倾向于使用。然后就可以参考官方的例程来进行开发了。原创 2024-04-28 14:40:09 · 810 阅读 · 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 · 1254 阅读 · 0 评论 -
在Qt中解决opencv的putText函数无法绘制中文的一种解决方法
查了一些资料,说想要解决这个问题,需要用到freetype库或者用opencv5(详情请查看文末的参考资料)。那我Qt也是第三方库啊,还倒不如直接用Qt实现呢。于是,我实现了一个myPutText函数。原创 2023-11-02 11:24:25 · 1403 阅读 · 4 评论 -
Qt的WebEngineView加载网页时出现Error: WebGL is not supported
当我在qml中使用WebEngineView加载一个网页时,出现以下错误:其实这个问题在Qt的帮助文档中已经提及了解决办法:因此,可以按照下面的步骤操作一下:在项目的pro文件中,引入模块2.2.在main.cpp文件include相应头文件,然后执行手册中提到的三行代码:原创 2023-10-06 09:19:44 · 1250 阅读 · 0 评论 -
在qml中将一个16进制表示的颜色加上透明度
在qml中,我们在指定控件的颜色时,可以直接通过16进制的字符串来表示,比如"#ff0000";这里提供一个函数,直接输入基础颜色以及其透明百分比,就可以返回对应的颜色。但是假如要在此颜色的基础上,加个透明度的话,就要重新计算一番,比较麻烦。这种方式也比较符合UI设计人员的使用习惯。原创 2023-09-15 14:01:54 · 325 阅读 · 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 · 759 阅读 · 0 评论 -
Qt获取本机唯一码(UUID)
这里给出一个获取电脑的UUID的方式,可以运行在windows、linux下。它和系统的硬件相关,但是又不完全相关。在生成软件序列号时,常常需要想办法区分不同的机器,防止别人购买了一个激活码就到处可以用。但是假如利用cpu_id、mac地址等,又会遇到一些问题(相同、修改等等)。原创 2023-07-11 16:34:46 · 2548 阅读 · 4 评论 -
Qt5.15.2配置Android开发环境
现在(20230617)利用QtCreator来配置android开发环境还是挺方便的。基本三步搞定(不过你要先安装好Qt)。原创 2023-06-17 16:55:45 · 2680 阅读 · 11 评论 -
QtWebAssembly下使用iframe无法加载第三方网站的问题
但是你把编译出来的东西。原创 2023-04-26 15:16:08 · 346 阅读 · 6 评论 -
Ubuntu下打开QtCreator,环境变量(PATH、LD_LIBRARY_PATH等)与预期不一致的问题
在Ubuntu中,安装好Qt之后,可以在系统桌面的左下角找到启动图标但是,这种方式启动的QtCreator所读取到的环境变量和我们从命令行读取到的不一致:可以看到,明显少了这个:/opt/ros/humble/bin因为这个原因,导致我在用cmake编译时一直出问题。原创 2023-04-20 17:01:45 · 1841 阅读 · 3 评论 -
ROS2中将octomap发布到Moveit中作为碰撞物体
这里假设你已经装好了ROS2以及Moveit2(都用二进制安装就行,不用从源码安转),没有安装好的,可以按照鱼香ROS的教程安装,两三行命令就搞定了。我的ROS2版本为humble,请根据你使用的实际版本替换。安装pcl安装octomap相关库下面这个也安装一下。原创 2023-04-08 18:21:10 · 2624 阅读 · 17 评论 -
用Qt编写STM32烧录软件(ISP模式)代码
之前写了一篇,但是在文中没有具体的实现代码。现在补上,各位有兴趣的同学可以参考以下。但是代码里面还有很多没有完善的,必定会存在一些bug,目前只是堪堪能用。假如要正式投入使用的话,自己一定要经过充分测试。原创 2023-04-06 16:36:36 · 1665 阅读 · 3 评论 -
尝试对MoveIt2的轨迹进行插值控制舵机机械手
机械手在运动时,要尽可能平稳、少冲击,显得丝滑。Moveit给到的轨迹,除了描述了各个关键时刻的各个关节的位置,还描述了此时的各个关节的速度、加速度。假如我们的执行机构可以完全按照这些位置、速度、加速度来进行操作,理论上就可以实现平滑的移动。但是由于我们目前用的是舵机,除了位置可控外,速度、加速度都不能直接控制。所以,只能通过插值来插补两个位置之间的各个小位置,让运动大概实现【加速-匀速-减速 】的过程。舵机的转动速度会因为负载的不同而不同,不能够简单认为是一个固定值。原创 2023-04-05 17:14:15 · 1035 阅读 · 15 评论 -
ROS2中用MoveIt2控制自己的舵机机械手(3)
经过上面的操作,舵机就基本在我们的掌控之中了。下一步就可以通过串口建立电脑与stm32的通讯,从而实现电脑上发送相应的指令控制任意舵机的转动角度。原创 2023-03-24 11:24:45 · 2482 阅读 · 10 评论 -
用Qt编写dll时的多语言实现
一般我们在写一些大型的项目时,会将系统功能分为多个子功能模块进行实现。各个子功能可以单独由某个人来实现,然后将其导出为dll文件。主程序再导入这些dll,使用其功能。而有多语言要求时,子模块的负责人除了提供dll外,还可以提供其模块对应的ts/qm翻译文件,以供主程序进行多语言切换处理。原创 2023-04-03 13:25:41 · 676 阅读 · 0 评论 -
ROS2中用MoveIt2控制自己的舵机机械手(5)
该机械手在执行MoveIt规划的路径时,会一卡一卡的,主要是因为两方面的原因:1.机械结构松散、2.执行路径时没有进行插补。主要原因是插补、反馈问题,后面再慢慢完善了。总之,暂时告一段落了。原创 2023-04-02 11:10:32 · 2446 阅读 · 7 评论 -
在Qt中调用MoveIt时出现Ogre::xxx错误
经过查找,发现是ros2里面的moveit_visual_tools,和moveit源码编译的moveit_visual_tools冲突了。可能是我什么时候安装了二进制的moveIt。然后再设置库的路径。原创 2023-02-06 16:52:49 · 269 阅读 · 0 评论 -
在QtCreator中先执行自定义命令再执行程序
先建立一个类似这样的脚本放在可执行文件所在文件夹下(具体内容要根据实际情况来定):run.sh# 2.改变run.sh的权限。原创 2023-02-06 15:20:09 · 688 阅读 · 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 · 956 阅读 · 1 评论 -
Qt关键字(signal、slot等)与第三方库中的函数、变量冲突的解决办法
然后在编译的时候,报错说什么语法错误。大概看了一下主要是Qt将这个结构体的emit函数识别成Qt的信号发射关键字emit了。但是这样其他类中的emit、signal、slot又不能用了,要改成Q_EMIT之类的,严重影响使用体验。同事在Qt环境下开发,使用第三方库(好像是什么tbb的库)时,里面有这样的一个结构体。它里面提到了一个解决办法。一开始找到的解决办法是。原创 2022-12-12 09:36:10 · 942 阅读 · 0 评论 -
Qt中自定义及控制qDebug的输出
在我们把自己的函数封装成库,然后给别人用时,别人很可能会看到我们库中使用qDebug()打印出来的信息。这些信息一方面会干扰别人自己的输出,另一方面也会暴露自己库的一些细节。但是有时候又的确需要这些信息。这里,我是自己实现了一个debug类,用法也是类似qDebug()那样。因此,最好有个开关来控制自己库的信息的打印。原创 2022-11-02 16:29:16 · 956 阅读 · 7 评论 -
Qt将xls文件另存为xlsx
需要注意的是 QAxObject接收的是必须是文件的绝对路径,所以最好用 QFileInfo(xlsFile).absoluteFilePath() 处理一下。方式是通过 QAxObject 调用excel打开原来文件,然后另存为。原创 2022-11-01 09:33:43 · 607 阅读 · 0 评论 -
Qt的lambda槽函数的注意事项
Qt中的lambda槽函数使用时做好带context原创 2022-10-14 22:18:58 · 623 阅读 · 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 · 2486 阅读 · 0 评论 -
Qt下生成pdb文件,并在exe崩溃时生成dmp文件,且由dmp查询崩溃原因
Qt在windows下dump文件bug溯源原创 2022-09-21 22:36:27 · 3812 阅读 · 9 评论 -
基于SVG,在网页中绘制自适应居中图片及图片检测框
利用svg在前端目标检测框图原创 2022-08-29 17:42:18 · 706 阅读 · 0 评论 -
qt5.12.9编译32位的qtwebengin模块
qwebengine播放视频原创 2022-08-15 00:51:37 · 1248 阅读 · 0 评论 -
Qt编写iphone信息读取(验机)工具
https://www.jianshu.com/p/a282fbcafaadhttps://www.cnblogs.com/xiyuan2016/p/7736973.html主要用libimobiledevice原创 2022-07-06 16:21:39 · 1421 阅读 · 0 评论 -
使用QtCreator时,无需将dll拷贝到build文件夹中的办法
在使用QtCreator调试项目时,无需拷贝dll。原创 2022-06-30 17:35:25 · 951 阅读 · 0 评论 -
Qt利用AES加密数据发送给springboot(java)服务器解密
背景目前用Qt和同事(他做服务器端)做一个第三方账号登录的东西:用户在本地客户端输入账号和密码后,客户端将密码进行对称加密,将数据post给服务器。服务器接收到数据之后,对密码进行解密,得到明文,然后用该账号+密码进行第三方平台登录。问题(重点、难点)无论是DES还是AES,不同的平台下,或者不同的人所实现的库一般很难对接上。尤其是那个DES,有一堆可自定义的初始化数据,一旦有一个参数没对上,那就差之千里了。解决方案java使用HutoolQt使用QtAesjava那边官方好像有自带的加解原创 2022-05-18 14:30:29 · 579 阅读 · 0 评论 -
Qt串口QSerialPort的多线程 及 QSerialPort的waitForReadyRead函数的问题
在官方的文档中提到,QSerialPort是不支持跨线程调用。因此不能在主线程(UI线程)创建QSerialPort,然后传递个指针给子线程,然后在子线程中执行耗时的发送任务。最好的方式是在子线程里面创建QSerialPort,然后通过信号槽来使用。但是我想偷个懒,我已经在主线程创建了QSerialPort,并且界面相关的东西都做好了,不想改动太大,因此我想了个办法:在新线程里面建立一个临时对象,复制传递进去的串口参数,执行完就干掉他。void MainWindow::on_pushButton_原创 2021-12-08 11:22:13 · 18020 阅读 · 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 · 743 阅读 · 8 评论 -
Qt解决在windows平台下高DPI屏幕异常显示的问题,及全屏截图问题
Windows dpi 截图原创 2022-03-08 17:24:48 · 1146 阅读 · 0 评论