私はpythonとwxPythonを同時に学習しています...:)それで、コマンドラインから正常に実行される一連のpythonファイルがあります:./scan -d test ~/Pictures
-たとえば、「test」と呼ばれる私の写真のデータベースを作成します。
私はこれのためにフロントエンドで熱心に取り組んできました(私は元のコマンドラインpythonファイルを書きませんでした)、そして私はそれを使用して実行させることができます:
def bt_ScanUpdateClick(self, event):
self.SetSizeWH(450,360)
## DEBUG
self.tc_MainDatabase.Value = "test.db"
if self.tc_MainDatabase.Value == "":
self.LogWindow.Value += "ERROR:\tNo database name selected!\n"
else:
scanCMD = "./scan -d " + self.tc_MainDatabase.Value + " "
numLines=0
maxLines=(int(self.multiText.GetNumberOfLines()))
if self.multiText.GetLineText(numLines) == "":
self.LogWindow.Value += "ERROR\tNo folder selected to scan!\n"
else:
self.LogWindow.Value += "Running Scan...\n\n"
while (numLines < maxLines):
scanCMD += str(self.multiText.GetLineText(numLines)) + " "
numLines += 1
self.LogWindow.Value += scanCMD
p = subprocess.Popen([scanCMD],shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE)
self.LogWindow.Value += p.communicate()[0]
これは私にとって問題を提示します:
- ボタンをクリックしてこれをアクティブにすると、実際には関数のself.SetSizeWH(450,360)部分に到達しません。それは単に「ダウン」状態のままです。コマンドが実行されると、アプリは出力ウィンドウ(self.LogView)にすべてが表示された状態で復活します...より「リアルタイム」な方法で出力を取得したいのですが...可能ですか?
何かご意見は?