首页 > 解决方案 > Python 和 Catalina 的菜单问题

问题描述

环境:macOS Catalina 10.15、Python 3.7.4 via pyEnv、Tcl/Tk 8.6.9、Visual Studio Code 1.39.2

我在调试代码时遇到了 Python 菜单在启动时对鼠标单击没有响应的问题。

升级到 Catalina 后,我通过 Homebrew 重新安装了 pyEnv 和 Tcl/Tk,然后通过 pyEnv 安装了 Python 3.7.4。这与我在运行 macOS Mojave 的另一台 Mac 上的设置相同,但我的另一台 Mac 没有出现此问题。

是否有其他人在使用 macOS Catalina 的 Mac 上遇到此问题?

import tkinter as tk

root = tk.Tk()

root.mainloop()

当它运行时,它会在我的 Mac 上显示一个 tk 窗口,但顶部的 Python 菜单不会响应鼠标单击,直到我 CMD+Tab 或单击退出应用程序,然后 CMD+Tab 或单击返回到它。在完成这两件事中的一件之后,菜单会按应有的方式响应鼠标点击。它的行为就像 Python 没有焦点一样,但据我所知它确实如此。

编辑:上面的代码非常简约,只是为了说明一点。但是为了更好地演示,我添加了一个带有按钮的框架以及@Mike - SMT 建议的 root.update_idletasks() 。

import tkinter as tk

root = tk.Tk()
root.geometry("300x300+15+15")

myFrame = tk.Frame(root)
myFrame.grid(column=0, row=0, padx=5, pady=5, sticky="nsew")
myButton = tk.Button(myFrame, text="Quit", command=lambda: exit())
myButton.grid(column=0, row=0, padx=10, pady=10, sticky='ew')

root.update_idletasks()

root.mainloop()

标签: python-3.xtkintervisual-studio-codepyenvmacos-catalina

解决方案


您描述的问题听起来与我几个月前在 macOS Catalina 上的 Tk 中的上游问题相同,但由于难以重现该问题并为其找到可行的解决方案,因此仍未解决。

如果您有兴趣获取有关该问题的任何更新,或者想帮助调查它,我建议在票证中添加评论。


推荐阅读