我在Tkinter输入框中遇到了一个非常奇怪的问题。当我尝试输入内容时,它们不接受我的输入。
经过一些电脑重启和Python重新安装,我找出了这种情况发生的原因:我在代码中的
我发现,为了解决这个问题,你只需手动将焦点移到另一个窗口上,然后再切回来即可。但我想知道是否有更好的方法?我希望保留我的消息框,而不想采用手动更改窗口焦点这种不优雅的解决方案。
经过一些电脑重启和Python重新安装,我找出了这种情况发生的原因:我在代码中的
root.mainloop()
之前放置了一个消息框。代码大致如下:def xyz():
if not messagebox.askyesno("Title","Some text"):
exit()
xyz()
root.mainloop()
我发现,为了解决这个问题,你只需手动将焦点移到另一个窗口上,然后再切回来即可。但我想知道是否有更好的方法?我希望保留我的消息框,而不想采用手动更改窗口焦点这种不优雅的解决方案。
root.after_idle(xyz)
而不是直接调用xyz()
,会怎样呢?这将使mainloop
有机会启动,但仍然在 GUI 启动时立即显示消息框。 - Bryan Oakleyafter_idle()
。 - Sebastian Hietschroot
窗口会自动聚焦,但输入小部件无法正常工作。 - Sebastian Hietsch