linux 命令行运行qt,Qt QProcess执行Linux 命令行的方法

一、QProcess 打开一个bash终端,能够执行通常的命令,主要实现步骤以下bash

m_proces_bash = new QProcess;

m_proces_bash->start("bash");

m_proces_bash->waitForStarted();

connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),this,SLOT(readBashStandardOutputInfo()));

connect(m_proces_bash,SIGNAL(readyReadStandardError()),this,SLOT(readBashStandardErrorInfo()));

二、向终端发送命令app

void MainWindow::on_pushButton_bashrun_clicked()

{

QString strCmd = ui->lineEdit_bashcmd->text();

ui->textEdit_bashmsg->append("Linux:~$ "+strCmd);

m_proces_bash->write(ui->lineEdit_bashcmd->text().toLocal8Bit() + '\n');

ui->lineEdit_bashcmd->clear();

}

三、接收终端返回ide

void MainWindow::readBashStandardOutputInfo()

{

QByteArray cmdout = m_proces_bash->readAllStandardOutput();

if(!cmdout.isEmpty()){

ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));

}

QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();

scroll->setSliderPosition(scroll->maximum());

}

void MainWindow::readBashStandardErrorInfo()

{

QByteArray cmdout = m_proces_bash->readAllStandardError();

if(!cmdout.isEmpty()){

ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout));

}

QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar();

scroll->setSliderPosition(scroll->maximum());

}

四、当命令须要超级权限时,sudo xx 须要修改成sudo -S xxui

例如:(1)ls 执行正常this

32f0901dd6ab0823f81fcb751d17e1d6.png

(2)sudo ls 执行失败code

87f70b9bd9aa45062266297cd0145d5a.png

(3)执行sudo -S ls 执行成功blog

c6206f72803be61166fec396d17ede2f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值