Ich benutze tkinter mit Python, um eine Benutzeroberfläche für ein Programm zu erstellen, das Excel-Dateien in CSV konvertiert.Python tkinter Etikett ändert sich nicht am Anfang der Funktion
Ich habe ein Label erstellt, das als Statusleiste dient, und statusBarText als StringVar() als textvariable festlegen. inputFileEntry und outputFileEntry sind Textvariablen, die die Eingabe- und Ausgabedateipfade enthalten.
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!')
Diese Funktion aufgerufen wird, wenn Sie auf die Schaltfläche Konvertieren klicken, und alles funktioniert AUSSER fein, dass die Statusleiste ändert sich nie zu sagen: ‚Konvertieren ...‘.
Der Text der Statusleiste wird in ungültige Parameter geändert, wenn entweder die Eingabe oder die Ausgabe leer sind und je nach Rückkehrcode zu Erfolg oder Fehlschlag wechseln. Das Problem ist, es ändert sich nie zu "Converting ..."
Ich habe diese genaue Zeile in die if-Anweisungen kopiert und eingefügt, und es funktioniert gut, aber aus irgendeinem Grund ändert es sich nie, bevor der Subprozess ausgeführt wird, wenn es an ist der Anfang der Funktion. Jede Hilfe würde sehr geschätzt werden.
Verwenden Sie nicht shell = True für Subprozess. – nosklo