macOS下Python的tkinter库Entry输入框无法输入中文问题的原因及解决办法(PS:万圣节🎃快乐!)

去年万圣节在写聚类,今年万圣节在写检索,人生啊。

问题描述

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

我的版本是macOS10.14.2,python3.6.0。

原因

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

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

大意是如果在macOS用python3.8+,3.7.2+,3.6.8或2.7.16+,那么无需考虑这个问题就可以使用IDLE或tkinter,讲使用内置的Tcl/Tk8.6。

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

解决办法

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

然后ActiveState提供了Tcl/Tk的二进制包,该版本与macOS发行版中的Apple提供的二进制包向上兼容,并且通常比其新。此版本的Tcl/Tk包含一些修复程序,用于修复使用tkinter或IDLE可能遇到的一些关键问题。

所以在ActiveState网站下载需要的版本即可。

https://www.activestate.com/products/tcl/downloads/

然后就可以在tkinter的文本框里输入中文啦~

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 LeFlacon

奶茶一杯 快乐起飞

支付宝
微信