2011-05-12 66 views
1

上午做了一个叫做包嗅探的项目。它工作起来像etherial.it捕获并显示所有到达主机的数据包。开发这个项目是在Linux平台上工作,现在用QT开发it.just指导我我有以下问题如何将控制台输出重定向到在Linux平台上的qt的GUI

  1. 时能够显示在控制台中的数据包信息我想重定向这些数据包信息,以我的GUI。可能吗。
+0

您正在编码的程序是执行数据包嗅探还是外部程序? – leegent 2011-05-12 10:23:29

回答

1

不好意思,我没有推荐材料在我面前。我最近做了这件事,它非常简单。使用QProcess来启动数据包嗅探器,然后创建一个插槽来处理ReadyRead(?)信号。 ReadyRead插槽然后可以读取进程中的stdout和stderr,并将输出放到GUI中。

+0

谢谢mattnz..its现在工作.. – rajesh 2011-05-13 05:04:55

0

如果您将外部程序的std-output输出到您的Qt程序,您可以使用QTextStream并将其附加到您的stdin(请参阅docs)。

从那里你可以在程序周围传递QTextStream对象,并用QTextStream :: readLine()提取输入,并将行附加到你的(例如)QTextEdit中。我不知道这是否可以工作,但你甚至可以从QTextStream :: device()获取QIODevice,然后将QIODevice :: readyRead()信号连接到你自己的插槽中,使得所有的东西都成为异步数组。

+0

谢谢leegent ...现在我能够从控制台得到输出..我hav使用两种方法... – rajesh 2011-05-13 05:04:16

+0

你应该标记这些答复之一作为正确的答案:) – leegent 2011-05-13 14:29:45