J'utilise tkinter avec Python pour créer une interface utilisateur pour un programme qui convertit les fichiers Excel au format CSV.L'étiquette tkinter Python ne changera pas au début de la fonction
J'ai créé une étiquette pour agir en tant que barre d'état et définissez statusBarText en tant que StringVar() en tant que variable texte. inputFileEntry et outputFileEntry sont des variables de texte qui contiennent les chemins de fichier d'entrée et de sortie.
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!')
Cette fonction est appelée lorsque vous cliquez sur le bouton de conversion, et tout fonctionne bien sauf que la barre d'état ne change jamais de dire « Conversion ... ».
Le texte de la barre d'état sera remplacé par des paramètres non valides si l'entrée ou la sortie est vide et si le code de retour devient un succès ou un échec. Le problème est qu'il ne change jamais en 'Converting ...'
J'ai copié et collé cette ligne exacte dans les instructions if et cela fonctionne bien, mais pour une raison quelconque, il ne change jamais avant que le sous-processus s'exécute quand il est à le haut de la fonction. Toute aide serait grandement appréciée.
N'utilisez pas shell = True pour le sous-processus. – nosklo