Python tkinter标签在功能开始时不会改变

Python tkinter标签在功能开始时不会改变,第1张

概述我正在使用tkinter和 Python为将Excel文件转换为CSV的程序创建用户界面. 我创建了一个标签作为状态栏,并将statusBarText设置为StringVar()作为textvariable. inputFileEntry和outputFileEntry是包含输入和输出文件路径的文本变量. def convertButtonClick(): statusBarText.se 我正在使用tkinter和 Python为将Excel文件转换为CSV的程序创建用户界面.

我创建了一个标签作为状态栏,并将statusbarText设置为StringVar()作为textvariable. 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语句中,并且它工作正常,但由于某种原因,它只是在子进程运行之前永远不会更改它位于函数顶部.任何帮助将不胜感激.

解决方法 由于您在单个方法调用中执行所有这些 *** 作,因此在启动子进程之前,GUI永远不会有机会更新.查看update_IDletasks()调用…

从http://infohost.nmt.edu/tcc/help/pubs/tkinter/universal.html

w.update_IDletasks()更新显示的某些任务(例如调整大小和重绘小部件)称为空闲任务,因为它们通常会延迟到应用程序完成处理事件并返回主循环以等待新事件.    如果要在应用程序下次空闲之前强制更新显示,请在任何窗口小部件上调用w.update_IDletasks()方法.

总结

以上是内存溢出为你收集整理的Python tkinter标签在功能开始时不会改变全部内容,希望文章能够帮你解决Python tkinter标签在功能开始时不会改变所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存