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

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

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 文件。例如:

shell 复制代码
[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格式的文件,直接放在文件目录下,然后新开一个终端输入

shell 复制代码
pwd

以此来确定,""绝对路径"。

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

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

可以看到再绝对路径下,是可以显示成功的。

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

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

1、准备图标

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

2、创建资源文件目录

如果对于新手而已,如何加入资源文件,网上有很多说明的,这里只是简单说明,有不明白的,可以直接看下面代码。

(1)创建资源文件

(2)创建相关文件
(3)加入文件
(4)确定路径:主要目的是确定代码里写法。

3、加入代码

如上,就是核心代码了,通过上边路径只要是确定代码写法,和绝对路径是不一样的,请注意两者差异

将代码帖到下边了

cpp 复制代码
#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、总结

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

相关推荐
sz66cm2 小时前
Python基础 -- 使用Python实现ssh终端并实现数据处理与统计功能
开发语言·python·ssh
CodeHackerBhx2 小时前
如何使用VMware安装Linux操作系统
linux·运维·服务器
小阿轩yx2 小时前
小阿轩yx-通过state模块定义主机状态
linux·云计算·运维开发·state定义主机状态·jinja模板
liangbm33 小时前
MATLAB系列02:MATLAB基础
开发语言·数据结构·笔记·matlab·教程·工程基础·高级绘图
Pakho love4 小时前
Linux:软件包管理器 yum和编辑器-vim使用
linux·编辑器·vim
change95134 小时前
PHP纯离线搭建(php 8.1.7)
开发语言·php
吴半杯4 小时前
Linux-mysql5.7-mysql8.0安装包下载及安装教程,二合一
linux·运维·服务器
福鸦4 小时前
详解c++:new和delete
开发语言·c++
默行默致4 小时前
Linux 常用命令
linux·运维
qq_172805594 小时前
Go Testify学习与使用
开发语言·golang·go