如何在Linux平台上将控制台输出重定向到qt中的GUI

时间:2011-05-12 07:26:30

标签: c linux qt

我正在做一个叫做数据包嗅探的项目。这项工作有点像etherial.it捕获并显示所有数据包来到主机。开发这个项目我在linux平台上工作,并使用QT开发它。只是指导我有以下问题

  1. 能够在控制台中显示数据包信息我想将这些数据包信息重定向到我的GUI。是不是可能。

2 个答案:

答案 0 :(得分:1)

对不起,不准确,我没有在我面前的推荐材料。我最近做到了这一点,非常直接。使用QProcess来启动数据包嗅探器,然后创建一个插槽来处理ReadyRead(?)信号。然后,ReadyRead插槽可以从进程中读取stdout和stderr,并将输出放到GUI上。

答案 1 :(得分:0)

如果要将外部程序的std输出传递给Qt程序,可以使用QTextStream并将其附加到stdin(参见docs)。

从那里你可以在程序周围传递QTextStream对象并使用QTextStream :: readLine()提取输入,将行附加到你的(例如)QTextEdit。

我不知道这是否可行,但您甚至可以从QTextStream :: device()获取QIODevice,然后将QIODevice :: readyRead()信号连接到您自己的插槽,以使所有内容都异步。 / p>