当前位置: 首页 > news >正文

【QT 5 调试软件+Linux下调用脚本shell-经验总结+初步调试+基础样例】

【QT 5 调试软件+Linux下调用脚本shell-经验总结+初步调试+基础样例】

  • 1、前言
  • 2、实验环境
  • 3、自我总结
  • 4、实验过程
    • (1)准备工作-脚本
      • 1)、准备工作-编写运行脚本文件
      • 2)、给权限
      • 3)、运行脚本
    • (2)进入qt部分代码
      • 1)、新建空白工程
      • 2)、1、debug调试代码
        • 0.核心代码段
      • 2)、2、界面调试代码
        • 1.提供路径
        • 2.提供文件名
      • 3)、加入布局部分
  • 5、代码链接
  • 6、细节部分
    • 1、ui->无调出编辑框ID
  • 7、总结

1、前言

最近要Linux下做相关软件开发了,还要当自己为新手,本着求知求学的心态,再简单的事情,也要好像学习,一面一些不该犯的错误犯了,另外也是趟一些雷,不害怕出错误,哪怕碰到最简单的错误也要好好总结下。
既然都到Linux 下,使用上位机调用脚本肯定要有的,本次也将简单使用一个简单样例来进行说明。

2、实验环境

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

QT软件版本:qt 5.14.2

3、自我总结

(1)一步一步按照顺序来,切不可心急,直接使用qt调试
我们调试软件,不能太心急,否则可能反而都不实现不了。
所以我们在实现前,要现在终端上,先实现相关功能,在使用qt调用,这样才能保证问题分离。

(2)调用脚本使用QProcess类
和之前烧写工具一样,调用脚本也是用process类,确定脚本路线,然后调用。

(3)一些基础工具使用
好长时间,没在Linux下弄东西了,想编写脚本,突然忘记了,连基础的vim都想不起来,所以也算复习下吧

vim xxx.sh
  • Vi 是早期Unix系统中的标准文本编辑器。
  • Vim(Vi IMproved)是Vi的升级版,拥有更多特性,如语法高亮、代码折叠、插件系统等。它在Linux社区中非常受欢迎,尤其是在程序员和系统管理员中。
  • Nano 是一个更友好的文本编辑器,操作简单,易于上手,尤其适合那些不太熟悉命令行编辑器的用户。
  • Emacs 是一个高度可定制的文本编辑器,功能强大,但学习曲线相对较陡。它不仅仅是一个文本编辑器,还可以通过扩展变成一个完整的工作环境。

这些编辑器都是通过命令行界面(CLI)访问的,没有图形用户界面(GUI),但它们非常强大和灵活,尤其是在处理文本文件、编程和脚本编写方面。对于新手来说,Nano可能是最容易上手的,而Vim和Emacs则提供了更多高级功能,但需要一定时间来学习和适应。

4、实验过程

(1)准备工作-脚本

使用指令新建一个脚本文件

1)、准备工作-编写运行脚本文件

vim simp1.sh

编写内容如下

#!/bin/bashecho "hello from script!"

在这里插入图片描述
然后退出,这里不具体说明VIM工具怎么用了。

2)、给权限

//这一步不可缺少
chmod +x simp1.sh 

3)、运行脚本

然后运行脚本.,注意此步骤和qt一点关系没有,是先保证自己脚本能运行

./simp1.sh

如果没有什么问题,就可以看到如下内容了。在这里插入图片描述

(2)进入qt部分代码

上边成功后,我们就可以进入qt部分了。

1)、新建空白工程

在如下这篇文章里,我们安装了软件,并且简单建立一个工程。首次实现了在Linux下运行第一个dome。
【Linux20.04-qt5.12.4软件安装与初步使用-qt在Linux使用-记录-笔记】

这块就不重复造轮了,看看上边文章吧,最后效果,是有个空白项目。
在这里插入图片描述

2)、1、debug调试代码

核心代码如下,就是使用process类。

0.核心代码段
void MainWindow::QProcess_test_shell(void)
{QProcess process;// 设置脚本执行的工作目录,如果脚本不在当前目录,需要指定完整路径process.setWorkingDirectory("/home/wjl/Desktop/qt_work/Linux_test_shell");// 连接信号以获取脚本的输出QObject::connect(&process, &QProcess::readyReadStandardOutput, [&]() {QString info=process.readAllStandardOutput();ui->textEdit->setText(info);qDebug() << info;});// 启动脚本process.start("./simp1.sh");// 等待脚本执行完成process.waitForFinished();}

我们先在debug终端里调试,当然这样做只是方便。

在这里插入图片描述

2)、2、界面调试代码

1.提供路径

如下如果不知道自己动文件在哪里的话,可以使用终端输入指令来查询

pwd

在这里插入图片描述然后放在如下代码里

在这里插入图片描述

2.提供文件名

使用相关指令查看目录下有什么文件,然后填进去

ls

在这里插入图片描述

3)、加入布局部分

加入布局,一个处罚,一个收信息
在这里插入图片描述
简单拉个上下,可以拖动
在这里插入图片描述
然后转到信号槽
在这里插入图片描述
将之前运行函数放在 按下里
在这里插入图片描述### 4、效果验证

在这里插入图片描述

5、代码链接

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

6、细节部分

1、ui->无调出编辑框ID

如下在调试的时候,没注意,直接想通过“”“->”调出编辑框的ID,发现不行,其实就是忘记保存了。

在这里插入图片描述
或者布玩局后,先运行下。
在这里插入图片描述
之后就可以了
在这里插入图片描述

7、总结

相关文章:

  • C语言:判断大端小端
  • 以太网协议与DNS
  • 【基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现】
  • List 接口
  • Socks5与代理IP技术探析:构建安全高效的网络通信
  • 算法训练营Day15(二叉树)
  • 【噪音控制 】 铁氧体磁珠
  • 多项式回归
  • CMMI评估认证,引领行业潮流!
  • 如何在社交场合中应对发作性睡病的影响?
  • 学习笔记 -- CAN系统基础
  • 【AI底层逻辑】——“数学华尔兹”之一元线性回归
  • 漏洞复现-iDocview某接口存在任意文件读取漏洞(附漏洞检测脚本)
  • Hasura GraphQL Engine 远程命令执行漏洞复现 [附POC]
  • thinkphp 中 关联查询 like 查询失效
  • [NodeJS] 关于Buffer
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Apache Pulsar 2.1 重磅发布
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS 三角实现
  • django开发-定时任务的使用
  • Docker下部署自己的LNMP工作环境
  • Golang-长连接-状态推送
  • JS专题之继承
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PV统计优化设计
  • Python 反序列化安全问题(二)
  • Spring Boot MyBatis配置多种数据库
  • Vue全家桶实现一个Web App
  • zookeeper系列(七)实战分布式命名服务
  • 电商搜索引擎的架构设计和性能优化
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 缓存与缓冲
  • 跨域
  • 力扣(LeetCode)56
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端存储 - localStorage
  • 前端技术周刊 2019-01-14:客户端存储
  • 三分钟教你同步 Visual Studio Code 设置
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #1014 : Trie树
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $forceUpdate()函数
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .net 生成二级域名
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)