QProcess实现交互式命令
首先,QProcess不能获取二级子进程的输入和输出
比如执行不了ssh,如果是使用ssh请参考我另一篇文章,QSsh的使用
这里以调用cmd为例
.h
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();private slots:void on_pushButton_clicked();void readSlot();void readError();private:Ui::Dialog *ui;QProcess process;
};#endif // DIALOG_H
.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include <QProcess>
Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{process.setProcessChannelMode(QProcess::ForwardedChannels);connect(&process, SIGNAL(readyRead()), this, SLOT(readSlot()));connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readError()));process.start("cmd");if(!process.waitForStarted()) {qDebug()<< "process error" << QString::fromLocal8Bit(process.readAllStandardError());} else {qDebug()<<"process read"<<QString::fromLocal8Bit(process.readAllStandardOutput());}
}void Dialog::readSlot() {qDebug() << "can read line" << process.canReadLine();while(process.canReadLine()) {char output[1024];int ret = process.readLine(output,1023);QString tmpstr = QString::fromLocal8Bit(output);
// emit senddata_sign(tmpstr);qDebug() << "tmpstr" << tmpstr;}
}void Dialog::readError() {qDebug()<< "read error" << QString::fromLocal8Bit(process.readAllStandardError());
}
//通过点击按钮进行命令写入
void Dialog::on_pushButton_clicked()
{qDebug() << "line edit" << ui->lineEdit->text();char*ch;QByteArray ba = (ui->lineEdit->text() + '\r' + '\n').toLatin1();ch = ba.data();process.write(ch);process.waitForBytesWritten(2000);
}
QProcess实现交互式命令相关推荐
- python交互式窗口怎么换行_Python多版本情况下四种快速进入交互式命令行的操作技巧
原标题:Python多版本情况下四种快速进入交互式命令行的操作技巧 因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇 ...
- 如何打开python的交互窗口-Python多版本情况下四种快速进入交互式命令行的操作技巧...
原标题:Python多版本情况下四种快速进入交互式命令行的操作技巧 因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇 ...
- 02_clickhouse安装,卸载,启动/关闭服务,交互式命令(数据库创建,数据导入,查询),批模式数据导入,MySQL接口操作ClickHouse,DBeaver可视化工具安装与使用(学习笔记)
1 ClickHouse安装 安装文件清单 clickhouse-client-${version}.noarch.rpm clickhouse-common-static-dbg-${version ...
- 在Matlab命令窗口中执行,交互式命令操作就是在MATLAB命令行窗口中输入命令并执行。...
交互式命令操作就是在MATLAB命令行窗口中输入命令并执行. 答:√ 中国大学MOOC: 一侧肾切除后,另一留存肾会长得更加硕大,这种生理现象称为 . 答:代偿 Street jazz 的编舞师都会有 ...
- 使用C#开发交互式命令行应用
前言 如果你开发过vue应用,应该对其交互式命令行印象深刻: 它允许你无需任何编程经验,仅需回答问题,就可完成vue应用创建. 虽然作为.NETer,大部分情况下我们不会使用命令行,但是还是希望能用C ...
- 通过交互式命令从github拉取项目模板并创建新项目
参考文档 Node.js 命令行程序开发教程 download-git-repo包从远程(GitHub, GitLab, Bitbucket)拉取文件到本地 commander.js包 在命令行中显示 ...
- redis 启动无输出_Git Bash 中执行交互式命令无响应
众所周知的原因,Windows下的命令行工具CMD非常难用,所以大家一般用Git Bash作为替代品,但是有时候在其中执行一些命令会出现无响应(无输出结果.无报错信息)的现象,本文将给出该现象的原因及 ...
- Node交互式命令行工具开发——自动化文档工具
转载自:小磊 https://segmentfault.com/a/1190000039749423 nodejs开发命令行工具,流程相对简单,但一套完整的命令行程序开发流程下来,还是需要下点功夫,网 ...
- 关于 在国产麒麟系统上使用QProcess配合管道命令执行shell命令获取预期结果输出失败 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126678079 红胖子(红模仿)的博文大全:开发技术集 ...
- python交互式命令_python实现定制交互式命令行的方法
Python的交互式命令行可通过启动文件来配置. 当Python启动时,会查找环境变量PYTHONSTARTUP,并且执行该变量中所指定文件里的程序代码.该指定文件名称以及地址可以是随意的.按Tab键 ...
最新文章
- java.sql在哪_我的Java访问MS SQL的程序错在哪了?谢谢!
- pytorch nlp 语音识别任务如何进行数据加载
- 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)
- if嵌套while循环语句_选考VB算法专题系列讲座13嵌套If和多分支语句
- NOIP模拟测试9「随·单·题」
- pod 挂载点 mysql_Pod挂载(Secret )
- java编写服务器_java编写一个简单的回射服务器
- 管理工作中的50点感悟
- java实现mysql增量备份_企业级MySQL备份原理
- mysql查找有小数点的数据_MySQL中查询中位数?
- EfficientDet训练自己的物体检测数据集
- bzoj 3632: 外太空旅行(随机)
- COM技术入门(1)
- Tcpip详解卷一第3章(2)
- 工作站Linux双显卡BIOS设置,在BIOS Setup里面设置双显卡机型的双显卡模式教程
- 计算机如何销账户用户,如何注销电脑用户账户 - 卡饭网
- 内存地址重映射的选项_ARM处理器重映射原理的分析与实现
- PHPStorm+Xdebug配置(phpStudy)
- Typora 常用快捷键
- php m403n安装错误,HP LaserJet M403n驱动
热门文章
- 【气温预测】基于matlab BP神经网络气温预测【含Matlab源码 714期】
- 史秀峰计算机网络技术与应用第二版,史秀峰版《计算机网络技术与应用》期中测试.doc...
- 机器学习cnn如何改变权值_五个机器学习悖论将改变您对数据的思考方式
- 磁盘剩余空间策略_Linux性能监控常用的命令:监控磁盘使用情况-df命令
- Latex:利用BibTeX批量导入参考文献
- webservice 安全性 对外_WebService的安全性讨论【身份识别】
- vue中 点击事件的写法_Vue父子组件状态同步的最佳方式
- python爱好者社区公众号历史文章合集_微信公众号历史文章爬取api
- java优化技巧_Java 性能优化的五大技巧
- java docker client_Docker Client (another java docker client api)