【发布时间】:2010-10-16 11:16:54
【问题描述】:
我正在使用 tkinter 和 Python 为将 Excel 文件转换为 CSV 的程序创建用户界面。
我创建了一个标签来充当状态栏,并将 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。
标签: python function label tkinter statusbar