解决macOS 10.15.2下Python的tkinter库Entry无法输入中文

问题描述

macOS 10.15.2下使用 tkinter Entry 输入框,无法输入中文,不管怎么样都只能输入英文,只能复制进去中文,交互体验很不好ಥ_ಥ。

我的版本是 macOS 10.15.2python 3.7.5

原因

可以在 python 的网站找到一篇这样的说明:

https://www.python.org/download/mac/tcltk/

大意是如果在 macOS 用从 Python 官网下载的 python 3.8+3.7.2+3.6.8 2.7.16+,那么无需考虑这个问题就可以使用 IDLE tkinter,将使用安装包内置的 Tcl/Tk8.6,不会使用系统自带的版本。

然而我是 python 3.6.0,在 macOS 10.6 或更高版本上,需要使用 Apple 提供的 Tcl/Tk8.5,但是他们有严重的错误。所以就会出现 tkinter 输入框 Entry 怎么切换输入法都没法输入中文的情况。需要链接到较新版本的 Tcl/Tk

解决办法

如果需要用 IDLEtkinter,首先不能用 macOS 自带的 python,要自己下个版本合适的 python

由于官网下载非常慢,可以本站下载一份拷贝 python-3.8.1-macosx10.9.pkg。 使用 Python 内置的 tkinter 即可解决问题。

但是这个解决完输入问题之后,`Toplevel` 又不能正常弹出了!

参考链接


发布者

《解决macOS 10.15.2下Python的tkinter库Entry无法输入中文》上有1条评论

  1. 我在使用macos 10.15.4
    官网下载的python 3.8.3
    ttk.Entry不能输入中文,TopLevel倒是可以正常弹出
    现在也不知道咋搞。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注