【问题标题】:How do I input an unicode character in any X windows' text field properly using python?如何使用 python 在任何 X windows 的文本字段中正确输入 unicode 字符?
【发布时间】:2015-09-25 18:31:48
【问题描述】:

我开发了一个中文输入程序,它只是简单地使用了 tkinter 和 pyxhook。 (我不会让它成为 ibus 扩展,因为它太痛苦且无处可开始)

对于文本输入部分,我一直在苦苦挣扎,因为我找不到一个像样的输入字符的方法,我的python程序一直只能调用xdotool type {char}

调用 xdotool 的性能勉强可以接受,只是有时会丢失字符(5% 的几率我必须重新输入一个字符)。

自从 firefox-developer 更新后,python 程序在 firefox 上打字时一直吃掉字符 (95%)。每当我必须输入中文时,我只能在文本编辑器上输入并复制粘贴到firefox。

好的,问题是,python 程序是否可以在 X 窗口中体面地输入中文,而不是一直调用 xdotool? (也许是 xlib?)

【问题讨论】:

    标签: python xlib xorg


    【解决方案1】:

    你如何传递字符?输入是如何编码的? xdotool 接受 ?(U+23478) 的输入,格式如下:

    xdotool key U23478
    

    如果xdotool 会“松开”输入,我会感到惊讶。不过,我预计 xdotool key ? 会有奇怪的行为。

    【讨论】:

    • 这有点帮助,输入不太可能因从“类型”更改为“键”而丢失。
    • type 使用相同的符号仍然不起作用?
    • 使用type,xdotool 很可能会在 Firefox 上丢失 tge 输入。还有,xdotool的性能有点差,不知道是不是gnome的问题。
    • 已确认,基本上是 gnome 造成了延迟。在 Openbox(kvm 上的 archbang)上测试,性能优于裸 arch + gnome。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2013-02-06
    • 2018-03-24
    • 2015-06-11
    • 2011-04-14
    相关资源
    最近更新 更多