2017-06-16 6 views
1

別のtcl/pythonアプリケーションによって変更されたファイルの変更を検出しようとしています。 QFileSystemWatcher addPathをファイルに使用しました。 ファイルの変更に対してfileChanged(QString)シグナルを送出しません。 しかし、これらのファイルを手動で編集すると、fileChangedシグナルが放出され、スロットが実行されます。QFileSystemWatcherが別のアプリケーションによって行われた変更のためにfileChangedシグナルを出さない

答えて

0

あなたのtcl \ pythonプログラムで、実際に 'with'ステートメントを使ってf.close()\ f.flush()\を使ってファイルにデータをフラッシュすることを確認してください。

p.s. pythonは、実際にデータをファイルに書き込むために、実行が終了するまで待機することがあります。これがここで起こっている場合、ファイルはtcl \ pythonプログラムの実行が終了するまで変更されないため、その時までシグナルは放出されません。

+0

TCLコードを確認しました。ファイルにはclose $ outPortがあります。 Pythonコードの場合、ファイルは次のように一時ファイルを移動することで作成されます。 RUNCMD = "MV -f%S%S" %(TMPFILE、liveFile) os.system(RUNCMD) 私は3つのファイルを見たいと思います。その別のpython apiによって作成される最初のファイルのために働いています。他の2つのファイルが検出されていません。私は動作しないが運がない2つのファイルを追加するだけでテストしました。 – Randeep

関連する問題