在 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
在您要绑定的事件上隐藏或显示佛罗伦萨。
我想 运行 我的代码在 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
在您要绑定的事件上隐藏或显示佛罗伦萨。