仅在包含子字符串(PyQt4)的情况下打印QProcess标准输出

时间:2017-07-13 17:52:05

标签: python python-2.7 pyqt pyqt4 qprocess

PyQt4应用在ping中运行QProcess。名为QTextEdit的{​​{1}}将输出self.output的所有内容。名为ping的第二个QTextEdit只会在包含字符串self.summary的情况下输出该行。

问题:我设法让TTL工作但self.output无效,因为我不确定如何在self.summary函数中编写代码。有什么想法吗?

enter image description here

dataReady

1 个答案:

答案 0 :(得分:1)

您可能遇到的一个问题是,QProcess的每个输出可能有几行,即包含"\n",以便我们将它分开,然后我们进行搜索:

for line in processStdout.split("\n"):
    if "TTL" in line:
        cursorSummary.insertText(line+"\n")

在您的初始代码中,您将获得带有for循环的每个字符,这会生成错误。

enter image description here

注意:在linux中,我必须按单词ttl进行过滤。除了将QProcess更改为:self.process.start('ping', ['-c', '3', '127.0.0.1'])