在 tkinter 中使用屏幕键盘上的文本更新条目小部件

Updating entry widget using text from onscreen keyboard in tkinter

我想 运行 我的代码在 raspberry pi 上,它有一个触摸屏。 GUI 是使用 Tkinter 制作的,我想在条目获得焦点时弹出系统屏幕键盘。这是我当前的代码:

用于将条目小部件与 FocusIn 事件绑定:

self.usernameEntry.bind('<FocusIn>', self.FocusLogin)

用于调用安装在 pi 中的屏幕键盘:

    def FocusLogin(self,event):
       os.system('florence')

我的问题是,无论我通过佛罗伦萨键盘输入什么,它都不会自动填充输入小部件。只有在我关闭键盘后,我才真正看到我输入的内容。我试过火柴盒键盘,但它只是冻结了整个 UI。佛罗伦萨似乎更好,但它没有像我提到的那样更新输入字段。我希望 UI 自动显示我在输入字段中按下的键。

对于寻找答案的人,我找到了 2 种解决方法:

首先,使用 subprocess.popen 创建单独的线程 UI 和键盘。这在板载键盘上工作正常,但佛罗伦萨滞后

第二种方法是在打开应用程序之前在后台 运行 佛罗伦萨。然后使用

florence hide
florence show

在您要绑定的事件上隐藏或显示佛罗伦萨。