具体问题是:我用QProcess执行tail -f 指令,文件是一个日志文件,现在做了一个QT界面,我需要做的是将读取的日志显示到QStandardItem中,我大概做法是setstandardout,然后然后QString msg =前面的这个输出,最后是QStandardItem->append(msg) ,不知道为啥显示不出内容,用qdebug()显示出的结果也都是“ ”,就是没有内容,请教各位,谢谢
直接在命令行里运行你的命令,看看是否能执行,是否报错呢
1100
不知道你这个问题是否已经解决, 如果还没有解决的话:// 从标准输出通道中读取数据
readAllStandardOutput()
// 从标准错误通道中读取数据
readAllStandardErrot()
// 设置输出到的文件,相当于前面的重定向
setStandardOutputFile()
// 设置错误到的文件
setStandardErrorFile()
// 读取标准输出
read()
readLine()
QProcess
提供了完成同步操作的函数:
以下方法会导致进程阻塞,直到符合其中的某一状态:
// 外部程序启动完毕
waitForStarted()
// 输出通道中的新数据是可读的
waitForReadyRead()
// 输入通道中的数据被写入完毕
waitForBytesWritten()
// 外部程序执行完毕
waitForFinished()
另外要注意的是,如果在主线程(QApplication::exec())中调用这些函数,可能会造成当前用户界面不响应
1。QProcess::kill()
QProcess::terminate()
QProcess::close()