python - 如何使用 python 在任何 X windows 的文本字段中正确输入 unicode 字符?

标签 python xlib xorg

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

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

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

自从 firefox 开发人员更新以来,python 程序在 firefox 上输入时总是(95%)吃掉字符。每当我需要输入中文时,我只能在文本编辑器中输入并复制粘贴到 Firefox 中。

好吧,问题是,Python 程序是否可以在 X 窗口中正常输入中文,而不是一直调用 xdotool? (也许 xlib?)

最佳答案

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

xdotool key U23478

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

关于python - 如何使用 python 在任何 X windows 的文本字段中正确输入 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788527/

相关文章:

python - 如何将 POINT 结构传递给 Python 中的 ElementFromPoint 方法?

python - Django:测试加载静态文件是否成功

linux - 如何使用 XLib 和 Xcursors 在 Linux 中加载 Windows 游标 (.cur)?

Python xlib 更改光标

x11 - 如何将 WM 移植到 Wayland?

javafx-2 - JavaFX 导致 X 服务器崩溃

python - 从使用Python中的groupby itertools创建的词典列表中删除重复项

python - 匹配两个数据框以选择具有完全匹配的行项目的项目

c++ - 如何使用 xlib 正确截屏?

xorg - 如何更改 _NET_WM_NAME(X 库)