最近在给自己编写的 聊天服务器 做一个 GUI客户端,用于解决两个问题:
- shell 中不支持中文
- 输入和显示在同一个窗口,打字时会被其他人的发言打乱
由于 Python 自带,而且也支持跨平台,所以选用了 Tkinter,完成预想的三个界面设计、界面间跳转,打算开始尝试和 服务器 对接,突然发现__没法输入中文__
组件 里是可以显示的,包括标签、按钮,然后尝试直接复制粘贴中文,也可以从 文本框 贴进去并显示。但如果尝试使用 中文输入法 直接在 文本框 输入中文,只会打出中文的拼音。
搜索了一下,没有找到满意的答案,已经开始考虑换用 wxPython ,为了表达郁闷,到群里吐了一下槽。Frank Hu 和 CP4 的回复帮我理清了思路,换了关键词重新搜索,找到了一个方法,尝试后,问题解决。
以下是 问题原因 和 解决方法:
出现这个问题是由于 系统自带的Tkinter 版本过低,需要下载更新
这个问题在 Python 官网给了说明[IDLE and tkinter with Tcl/Tk on Mac OS X](https://www.python.org/download/mac/tcltk/)以及 新的 Tkinter 下载地址[the ActiveState web site](http://www.activestate.com/activetcl/downloads)
有一点要注意,需要按照官网的推荐列表下载对应的 Tkinter 版本,而不是下最新的 ActiveTcl8.6.4.1 。我一开始下载安装最新版,发现问题依旧。后来按照 Python官网 的推荐,下载 ActiveTcl 8.5.18.0,问题解决。
参考文章:
[解决MAC版 IDLE 不支持中文输入法](http://bbs.fishc.com/thread-58463-1-1.html)