我用 Python 编写了一个带有 tkinter GUI 前端的程序。从脚本运行时没有问题。
我使用 cx_freeze 将它打包到一个 exe 文件中,并从那里运行它适用于大多数程序。但是,它有一个问题:当试图在其中一个函数中为对象赋值时,StringVar
会引发异常并终止程序。
当从程序中的不同点访问相同的函数时,它会正常运行。知道有什么问题吗?
导致问题的代码部分如下(我添加了消息框,以便查看失败的原因):
if keyDetail.get('default', False):
try:
self.entries[key].set(keyDetail['default'])
except Exception as err:
messagebox.showinfo('error', 'key: %s, default: %s, error: %s'%(key, keyDetail['default'], err))
self.entries[key]
是一个tk.StringVar
。
运行时,我在消息框中收到以下消息:
key: orderNo, default: Order Number, error: can't set "PY_VAR16:0"