• 5527阅读
  • 3回复

linux下编程qt想调外部程序并读取结果问题,在线等 [复制链接]

上一主题 下一主题
离线celtic
 
只看楼主 倒序阅读 楼主  发表于: 2007-03-31
— 本帖被 XChinux 执行加亮操作(2007-04-01) —
linux下编程qt想调外部程序并读取结果问题,想调用NMAP,并按要求返回结果,QPROCESS看不太明白,请帮忙,最好用实例来说明一下,谢谢各位!!!急,在线等
离线zeki709

只看该作者 1楼 发表于: 2007-04-01
QProcess nmap;
nmap.setProcessChannelMode(QProcess::MergedChannels);
nmap.start("NMAP");

if (!nmap.waitForFinished())
    qDebug() << "NMAP failed:" << nmap.errorString();
else
    qDebug() << "NMAP output:" << nmap.readAll();
离线celtic
只看该作者 2楼 发表于: 2007-04-01
谢谢,我来试试
离线htyoung

只看该作者 3楼 发表于: 2007-04-02
可以试试我写的一个YXterm的类(Qt4)。
使用方法:
/////////////////////////////////
//定义
YXterm *termProgram =new YXterm();

slots :
void slotGetResTermProgram()
{
QString tmpStr
  for ( QStringList::Iterator it =termProgram->resList.begin(); it != termProgram->resList.end(); ++it )
    {
//在这里检查 执行结果
      tmpStr=*it;
      qDebug(" start sort [%d]: ",i);
      qDebug(tmpStr.toAscii());
              i++;     
    }

}

/////////////////////////////////////
////使用

connect(termProgram, SIGNAL (stopExecuted() ),
      this, SLOT(slotGetResTermProgram()) );

termProgram->slotAddCommand("ls");    //add programm name
termProgram->slotSetCommand("/tmp"); //set program augument
termProgram->slotRunCommand(); //execute the programm

sleep (500) //这里你可以用其他方法,只是wait
//wait the signal "stopExecuted() "

我这里只是个example,详细的YXterm使用 可以看一下YXterm代码,你也可以改一下,以符合你的使用。
[ 此贴被htyoung在2007-04-02 14:49重新编辑 ]
附件: yxterm.zip (3 K) 下载次数:11
***
QT5
***
快速回复
限100 字节
 
上一个 下一个