Qt QProcess执行Linux 命令行的方法
生活随笔
收集整理的這篇文章主要介紹了
Qt QProcess执行Linux 命令行的方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、QProcess 打開(kāi)一個(gè)bash終端,可以執(zhí)行一般的命令,主要實(shí)現(xiàn)步驟如下
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()));2、向終端發(fā)送命令
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(); }3、接收終端返回
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()); }4、當(dāng)命令需要超級(jí)權(quán)限時(shí),sudo xx 需要修改為sudo -S xx
例如:(1)ls 執(zhí)行正常
(2)sudo ls 執(zhí)行失敗
(3)執(zhí)行sudo -S ls 執(zhí)行成功
?
?
總結(jié)
以上是生活随笔為你收集整理的Qt QProcess执行Linux 命令行的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《史蒂夫·乔布斯传》(Steve Job
- 下一篇: linux可配置哪些服务,linux操作