如何在单击wxpython时删除旧结果

时间:2014-03-31 10:20:03

标签: python wxpython

我有一个wxPython脚本,它在单击按钮后执行一个进程并在wx.StaticText中显示进程输出。 问题是当我想重新执行该过程时,我点击按钮并显示旧结果(第一个过程的输出);这个旧结果仍然显示在窗口上,而我添加了一条通常会隐藏它的指令:

以下是我的代码行:

def OnButton(self, e):
    if self.res=="udpscan":
        self.resultat1.SetLabel("")
        ipad=self.ipadd.GetValue()
        fromm=self.fr.GetValue()
        too=self.to.GetValue()
        ifc=self.intf.GetValue()
        if len(ipad) <1  or len(too) < 1 or len(fromm) <1 or len(ifc) < 1:
            wx.MessageBox('Please enter missing values','error',wx.OK)
        else:
            sp=subprocess.Popen(['python','udp_portscan.py',ifc,ipad,fromm,too],stdout=subprocess.PIPE)
            text=sp.stdout.readlines()
            text="".join(text)
            self.resultat1.SetLabel(text)

我试图添加其他信息以隐藏它但同样的问题。 你能帮我吗。谢谢

1 个答案:

答案 0 :(得分:0)

sp似乎将所有先前的输出存储在sp.stdout中。

可能有办法使用.kill()来清除它:

      sp=subprocess.Popen(['python','udp_portscan.py',ifc,ipad,fromm,too],stdout=subprocess.PIPE)
      text=sp.stdout.readlines()
      sp.kill()