私はPythonでtkinterを使用して、ExcelファイルをCSVに変換するプログラム用のユーザーインターフェイスを作成しています。Pythonのtkinterラベルは関数の先頭で変更されません
私はステータスバーとして動作するラベルを作成し、textVariableとしてstatusBarTextをStringVar()として設定しました。 inputFileEntryおよびoutputFileEntryは、入出力ファイルパスを含むテキスト変数です。
def convertButtonClick():
statusBarText.set('Converting...')
if inputFileEntry.get() == '' or outputFileEntry.get() == '':
statusBarText.set('Invalid Parameters.')
return
retcode = subprocess.('Program.exe' ,shell=true)
if retcode == 0:
statusBarText.set('Conversion Successful!')
else:
statusBarText.set('Conversion Failed!')
この機能を使用すると、変換ボタンをクリックしたときに呼び出され、すべてがステータスバーには「変換...」と言って変更されないことを除いて正常に動作しています。
入力または出力が空の場合、ステータスバーのテキストは無効なパラメータに変更され、戻りコードによって成功または失敗に変わります。問題はそれが決して '変換中...'に変更されないということです
私はその正確な行をコピーしてifステートメントに貼り付けても問題ありませんが、何らかの理由でサブプロセスが実行される前に関数の先頭。どんな助けでも大歓迎です。
サブプロセスでshell = Trueを使用しないでください。 – nosklo