Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在linux平台上将控制台输出重定向到qt中的GUI_C_Linux_Qt - Fatal编程技术网

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

C 如何在linux平台上将控制台输出重定向到qt中的GUI,c,linux,qt,C,Linux,Qt,我正在做一个名为包嗅探的项目。它的工作原理类似于以太。它捕获并显示所有到达主机的包。为了开发这个项目,我在linux平台上工作,并使用QT进行开发 我能够在控制台中显示数据包信息,我想将这些数据包信息重定向到我的GUI。有可能吗 对不起,不准确,我面前没有参考资料。我最近就是这么做的,非常直接。使用QProcess启动数据包嗅探器,然后创建一个插槽来处理ReadyRead(?)信号。ReadyRead插槽可以从进程中读取stdout和stderr,并将输出放到GUI上 对不起,不准确,我面前没有

我正在做一个名为包嗅探的项目。它的工作原理类似于以太。它捕获并显示所有到达主机的包。为了开发这个项目,我在linux平台上工作,并使用QT进行开发

  • 我能够在控制台中显示数据包信息,我想将这些数据包信息重定向到我的GUI。有可能吗

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

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

    如果要将外部程序的std输出通过管道传输到Qt程序,可以使用QTextStream并将其连接到stdin(请参阅)

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


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

    如果您将外部程序的std输出传输到您的Qt程序,您可以使用QTextStream并将其连接到stdin(见附件)

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


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

    您正在编写的程序是执行数据包嗅探的程序,还是外部程序?您正在编写的程序是执行数据包嗅探的程序,还是外部程序?谢谢leegent…现在我能够从控制台获得输出。我已经使用了这两种方法…您应该标记o这些回复中有一个是正确答案:)谢谢leegent…现在我可以从控制台获得输出..我已经使用了这两种方法…您应该将其中一个回复标记为正确答案:)