2017-03-15 1 views
0

のPIDを取得し、このような何か:私は、完成QProcessのPIDを取得しようとしている終えQProcess

proc = QProcess.start() 
proc.finished.connect(self.finished) 

def finished(self): 
    self.sender().pid() 

QProcess.pidは()プロセスがしかしclosedの場合は0を返し、QProcessます。 finished()はプロセスが完了した後にのみ呼び出すので、私は0を得ることができます...どうすればこの問題を回避できますか?私は完了時にPIDを使用する必要がない方法を考えようとしていますが、現時点では私がしなければならないことです。

私はproc.aboutToClose.connect(self.finished)を試しましたが、これは何も返されなかったので、それは信号ではないようですが、それがうまくいくならば良い解決策になります。

+0

は '開始()'信号を使用しますpidを取得する。 – ekhumoro

+0

ありがとうございますが、私はプロセスの最後にそれを取得しようとしています。私がやっていることは、プロセスが完了したときに "完了"と言うQTableViewアイテムを更新することです。プロセスが実行されている間などにPIDを使用してプロセスが完了したことを知ります。一度に) – Spencer

+0

それは意味をなさない。定義すると、完成したプロセスにはPIDがありません。 'started()'シグナルを使用してプロセスオブジェクトのpidをキャッシュします(例えば、 'proc.setObjectName(str(proc.pid()))')。 – ekhumoro

答えて

0

Ekhumoroが答えを与え、解決策はPIDプロセスに名前を付けることであるので、あなたはまだ、単にオブジェクト名を照会することによって、後でそれを得ることができます。

proc.setObjectName(str(proc.pid()))

関連する問題