我在Tkinter入口小部件上遇到了一个非常奇怪的问题。当我试图向他们输入一些内容时,他们不会接受我的输入。
在重新启动电脑和重新安装Python之后,我明白了为什么会发生这种情况:我在代码中的root.mainloop()
之前有一个消息框。代码看起来像这样:
def xyz():
if not messagebox.askyesno("Title","Some text"):
exit()
xyz()
root.mainloop()
我发现,要解决这个问题,你只需手动关注另一个窗口,然后再返回。我想知道是否有更好的方法可以做到这一点?我想保留我的信息框,不想要手动更改窗口焦点的不合法解决方案。
您可以修复如下代码:
def xyz():
if not messagebox.askyesno("Title","Some text"):
exit()
root.after(10,xyz) #show the messagebox after root.mainloop()
root.mainloop()