首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TKinter。Tcl_AsyncDelete:找不到异步处理程序

TKinter。Tcl_AsyncDelete:找不到异步处理程序
EN

Stack Overflow用户
提问于 2022-08-01 13:38:25
回答 1查看 70关注 0票数 0

为了特定的目的,我在Odoo15中运行tkinter库。

我已经创建了一个自定义python解释器来在odoo中运行python代码。为了处理用户输入,我专门设计了一个概念,并通过tkinter从用户那里获取输入。

在代码中,可能有多个输入,所以我需要打开窗口不止一次。例如,获取一个输入,输入,关闭窗口,然后重复相同的过程,直到最终用户输入。

因此,在某种情况下,我的服务器因运行时错误而终止:

Tcl_AsyncDelete:无法找到中断的异步处理程序(内核转储)

有人能指点我怎么解决这个问题吗?

代码语言:javascript
运行
复制
import tkinter as tk
import gc
root=tk.Tk()
root.geometry('800x200+600+300')
name_var=tk.StringVar()
var_1 = ''
def submit():
    name=name_var.get()
    global %s
    var_1 = name
    root.destroy()
name_label = tk.Label(root, text = 'Enter value', font=('calibre',10, 'bold'))
name_entry = tk.Entry(root,textvariable = name_var, font=('calibre',10,'normal'))
sub_btn=tk.Button(root,text = 'Submit', command = submit)
name_label.grid(row=0,column=0)
name_entry.grid(row=0,column=1)
sub_btn.grid(row=2,column=1)
root.mainloop()

当有像value = the (“输入值”)这样的行时,我将用上面的代码替换该行,以接受用户输入。

期待着听到这个..。谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-08-02 13:57:56

没有一个最小的可重复的例子,它更多的是一个猜测而不是一个答案。

但由于你的要求,我会尽我最大的努力。下面这一节的编码方式可能是至关重要的。

在代码中可能有多个输入,所以我需要打开窗口不止一次。例如,获取一个输入,输入,关闭窗口,然后重复相同的过程,直到最终用户输入。

如果销毁根窗口、tkinter.Tk()实例并试图检索已销毁实例的用户输入(位于tkinter中的数据),则可能会遇到麻烦。不要创建tkinter.Tk的新实例,而是使用tkinter.Toplevel。您可以通过多种方式隐藏根窗口。即具有超直观性和透明性。

TL;博士

确保在整个会话中使用相同的tkinter.Tk()实例,或者将新实例与服务器连接,反之亦然。

希望它能为你解决,特别是因为我不知道odoo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73194594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档