之前不是使用win的一个串口工程弄到来Linux下,进行运行了么,因为qt跨平台还是做的比较好的,所以,可以说直接能够运行,但是发现自己的USB转换TTL工具无法使用,无奈,只能使用232的串口模块,还是使用这个大的转换器的,比较方便,今天就来说说说这个解决方式。
另外,就是发现不显示软件的图标了,win下,和Linux,还是不太一样的,需要重写弄下。
实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:
环境问题还是要注意下的,不同环境下可能还真的可能不一样。
QT软件版本:qt 5.14.2
硬件设备:USB转TTL转换工具。
在如下这篇文章里,我们将win下的工程串口文件,拉到了Linux下,在装好的qt上直接运行,是可以直接运行的。
【QT 5 调试软件+(Linux下验证>>>>串口相关初试串口)+Windows下qt代码在Linux下运行+参考win下历程+基础样例】
但是发现两个问题,本篇文章,也是解决如下两个问题。
如下图示所示,可以看到在Linux界面里,是不显示图标的,说明Linux和win还是有些区别。
就是自己动那个大的USB转换模块,发现无法使用,记得当初在win下,也是需要安装驱动的。
我们使用的样例是串口当时的样例,如有需要可以直接下载。
代码连接:https://download.csdn.net/download/qq_22146161/86722251
毕竟已经跨系统了,有些不一样还是能够让人理解的,于是就想到了一些解决方式。
目前自己查到的方式有三种,当然并没有全部都尝试了。
这个方式尝试后发现失败了,或者也有可能自己哪里做的不对,如下,
这种方式有几种,都有类似性质,但本身都是调用qt的代码,让代码去调用图标显示,但有些不同。
还是推荐使用第三个,因为我们不能确定使用软件的时候,一定在特定目录下,所以最好让图标随着软件走,但是还是会简单尝试下路径的方式。
即在填写代码是的时候,填写绝对路径或者相对路径,但是给别人使用的话,不能规定人家怎么放置文件,所以以上会简单说下,但认为解决方式第三种比价好。
就是将图标当初资源文件,每次启动是直接调用,这虽然比win下稍微复杂些,但相对其他方式,认为是比较优的方法了。
这种方式,其实是在改变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 字段中指定了图标文件的正确路径。
这块其实只要使用相应驱动就可以了,或者说,安装相应驱动。在win下,需要在桌面点下,但是Linux,相关安装说明,一步步操作就可以了。
需要准备在显示图标,可以在相关网站上下一个。
如下图,将图标文件png格式的文件,直接放在文件目录下,然后新开一个终端输入
pwd
以此来确定,“”绝对路径”。
然后在mian.c里加入相关路径+图标文件名称,如下。
可以看到再绝对路径下,是可以显示成功的。
补充:相对路径,也是相似度,只是通过类,直接获取路径,这里补个图片,简单说下。
准备图标就不说了,同上一样。
如果对于新手而已,如何加入资源文件,网上有很多说明的,这里只是简单说明,有不明白的,可以直接看下面代码。
(1)创建资源文件
(2)创建相关文件
(3)加入文件
(4)确定路径:主要目的是确定代码里写法。
如上,就是核心代码了,通过上边路径只要是确定代码写法,和绝对路径是不一样的,请注意两者差异
将代码帖到下边了
#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();
}
后来咨询商家,在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自环一起,然后发送信息。
代码链接:https://download.csdn.net/download/qq_22146161/88647687
暂无
一个问题一个问题解决,就会到达最后目标吧。