【问题标题】:Tkinter Entry to accept Unicode text?Tkinter Entry 接受 Unicode 文本?
【发布时间】:2017-11-11 16:02:19
【问题描述】:

我有一个 Tkinter Entry 小部件和一个 Hungarian keyboard。当我按下键盘上的 ő 按钮时,Entry 小部件显示õű 变为û。 (自 Windows 3.1 以来,我在其他应用程序中没有遇到过这个问题。)

编辑:

我在这台计算机上确实有两种语言设置,当我开始更改它们时,问题就消失了。

如何让 Tkinter 正确处理我的输入?

【问题讨论】:

  • 我们真正需要追查的是日志,其中记录了发送的 WM_INPUTLANGCHANGE 事件以及问题发生时的 lParamwParam 字段。
  • @DonalFellows Windows 是否向应用程序发送 initial WM_INPUTLANGCHANGE 事件?因为问题只发生在我开始更改语言之前。

标签: unicode tkinter tk keyboard-layout


【解决方案1】:

看起来这是一个更改键盘布局的问题,因为Windows上的Tk(Tkinter下的库)对WM_INPUTLANGCHANGE中的lParam没有任何作用消息。那是a bug

【讨论】:

  • 你确定吗?就我而言,键盘布局不会改变,只会改变语言。
【解决方案2】:

这里有一张 Tk 票: Tk Ticket

很遗憾,问题可能仅限于 TkInter。

是否有可能获得更多细节并使用普通的 Tcl/Tk 进行测试? 因此,下载当前的 tcl/tk starkit 或发行版并尝试脚本:

pack [entry .e]

看看,那里是否也存在问题?

请向tk票报告,那里可能需要匿名登录。

【讨论】:

  • 是的,问题也存在。
  • 我不相信这可能是 Tkinter 唯一的问题; Tkinter 是 Tcl/Tk 之上的 Python 绑定层(与 PerlTk 不同),它没有引入任何地方,它会以这种错误的方式截取或误解消息。如果是绑定层问题,lots 的非 ASCII 字符会出错。
【解决方案3】:

无法重现您的问题。也适用于 Tk 和 tkinter。查看 Tk 票证。

【讨论】:

  • 欢迎来到 Stack Overflow!这实际上是评论,而不是答案。多一点代表,you will be able to post comments。目前我已经为你添加了评论,并且我将这个帖子标记为删除。
  • 在我的情况下,键盘布局没有改变!此外,该问题最初存在,但在更改语言后消失且无法恢复。
猜你喜欢
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 2019-10-28
相关资源
最近更新 更多