【QT 5 +Linux下验证+显示软件图标+串口转换器使用+串口样例】

发布时间:2023年12月20日

1、前言

之前不是使用win的一个串口工程弄到来Linux下,进行运行了么,因为qt跨平台还是做的比较好的,所以,可以说直接能够运行,但是发现自己的USB转换TTL工具无法使用,无奈,只能使用232的串口模块,还是使用这个大的转换器的,比较方便,今天就来说说说这个解决方式。

另外,就是发现不显示软件的图标了,win下,和Linux,还是不太一样的,需要重写弄下。

2、实验环境

实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:
环境问题还是要注意下的,不同环境下可能还真的可能不一样。
在这里插入图片描述

QT软件版本:qt 5.14.2
硬件设备:USB转TTL转换工具。

3、先行了解

在如下这篇文章里,我们将win下的工程串口文件,拉到了Linux下,在装好的qt上直接运行,是可以直接运行的。

【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】

但是发现两个问题,本篇文章,也是解决如下两个问题。

(1)问题1:软件图标不显示

如下图示所示,可以看到在Linux界面里,是不显示图标的,说明Linux和win还是有些区别。
在这里插入图片描述

(2)问题2:USB转TTL工具无法使用

就是自己动那个大的USB转换模块,发现无法使用,记得当初在win下,也是需要安装驱动的。

在这里插入图片描述

4、我所做的努力-解决方式总结

我们使用的样例是串口当时的样例,如有需要可以直接下载。

代码连接:https://download.csdn.net/download/qq_22146161/86722251

(1)真对问题1所做的努力:

毕竟已经跨系统了,有些不一样还是能够让人理解的,于是就想到了一些解决方式。
目前自己查到的方式有三种,当然并没有全部都尝试了。

1)像win里一样,在.pro文件加入图标代码>>>>结果:未成功

这个方式尝试后发现失败了,或者也有可能自己哪里做的不对,如下,
在这里插入图片描述

2)以代码的形式,添加图标>>>>结果:成功

这种方式有几种,都有类似性质,但本身都是调用qt的代码,让代码去调用图标显示,但有些不同。
还是推荐使用第三个,因为我们不能确定使用软件的时候,一定在特定目录下,所以最好让图标随着软件走,但是还是会简单尝试下路径的方式。

1、对绝对路径形式
2、相对路径形式

即在填写代码是的时候,填写绝对路径或者相对路径,但是给别人使用的话,不能规定人家怎么放置文件,所以以上会简单说下,但认为解决方式第三种比价好。

3、资源文件形式

就是将图标当初资源文件,每次启动是直接调用,这虽然比win下稍微复杂些,但相对其他方式,认为是比较优的方法了。

3)创建桌面条目>>>>结果:未尝试

这种方式,其实是在改变PC电脑的配置,目前是相使用的,因为软件不一定仅仅自己用,不能规范人家放在哪个目录使用,所以最好让图标跟着软件走,一起生成,不过这个也查下下,具体方式如下。

对于 Linux 系统,如果希望图标出现在应用菜单或桌面环境中,需要创建一个 .desktop 文件。例如:

[Desktop Entry]
Name=My Qt Application
Exec=/path/to/your/application
Icon=/path/to/icon.png
Type=Application
Categories=Utility;

这个文件应该放在 /usr/share/applications/(对于所有用户)或 ~/.local/share/applications/(对于当前用户)。

请确保在 .desktop 文件的 Icon 字段中指定了图标文件的正确路径。

(2)真对问题2所做的努力:

这块其实只要使用相应驱动就可以了,或者说,安装相应驱动。在win下,需要在桌面点下,但是Linux,相关安装说明,一步步操作就可以了。

5、实验过程

(1)问题1的调试:对绝对路径形式

1、准备图标

需要准备在显示图标,可以在相关网站上下一个。

相关链接:https://www.iconfont.cn/

在这里插入图片描述

2、下载代码,并将图标放在文件里

如下图,将图标文件png格式的文件,直接放在文件目录下,然后新开一个终端输入

pwd

以此来确定,“”绝对路径”。
在这里插入图片描述

3、加入代码,并将路径进行复制+图标文件名字

然后在mian.c里加入相关路径+图标文件名称,如下。

在这里插入图片描述可以看到再绝对路径下,是可以显示成功的。

补充:相对路径,也是相似度,只是通过类,直接获取路径,这里补个图片,简单说下。

(2)问题1的调试:资源文件路径

1、准备图标

准备图标就不说了,同上一样。

2、创建资源文件目录

如果对于新手而已,如何加入资源文件,网上有很多说明的,这里只是简单说明,有不明白的,可以直接看下面代码。
(1)创建资源文件
在这里插入图片描述
(2)创建相关文件
在这里插入图片描述(3)加入文件
在这里插入图片描述(4)确定路径:主要目的是确定代码里写法。
在这里插入图片描述

3、加入代码

在这里插入图片描述如上,就是核心代码了,通过上边路径只要是确定代码写法,和绝对路径是不一样的,请注意两者差异
将代码帖到下边了

#include "widget.h"

#include <QApplication>

#include <QMainWindow>
#include <QIcon>


#include <QDir>
#include <QDebug>




int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;


    // 获取当前工作目录
        QString currentDir = QDir::currentPath();
        qDebug() << "当前目录:" << currentDir;

    w.setWindowTitle("My Qt Application");
    w.setWindowIcon(QIcon(":/ico/logo1.png")); // 设置窗口图标
//        w.setWindowTitle("My Qt Application");
//        w.setWindowIcon(QIcon("/home/wjl/Desktop/qt_work/work/test_dome/logo1.png")); // 设置窗口图标
    w.show();
    return a.exec();
}

(3)问题2的调试:转换工具-安装驱动

后来咨询商家,在Linux下是有驱动的,所以直接安装驱动就可以了。
物品链接名称:usb转rs485/422/232/ttl光电隔离型485转usb工业级防雷串口转换器」

某宝:https://m.tb.cn/h.5nAcZXn?tk=DmY3W5r9wYj

驱动链接:https://m.tb.cn/h.5nAcZXn?tk=DmY3W5r9wYj
在这里插入图片描述

(1)网址确认。

根据自己电脑型号,确认下,下哪个版本驱动。
我自己电脑是64位,Linux的PC,x64的,所以如下选择。
在这里插入图片描述
文件如下。
在这里插入图片描述

(2)安装,将文件下下来之后,里面有个文件“ReadMe.txt“,里面有说明安装方式

在这里插入图片描述
(3)功能验证
还像之前一样的,将TX和RX自环一起,然后发送信息。
在这里插入图片描述

6、代码链接

代码链接:https://download.csdn.net/download/qq_22146161/88647687

7、细节部分

暂无

8、总结

一个问题一个问题解决,就会到达最后目标吧。

文章来源:https://blog.csdn.net/qq_22146161/article/details/135114999
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。