【问题标题】:Updating entry widget using text from onscreen keyboard in tkinter在 tkinter 中使用屏幕键盘上的文本更新条目小部件
【发布时间】:2017-09-01 02:45:25
【问题描述】:

我想在带有触摸屏的树莓派上运行我的代码。 GUI 是使用 Tkinter 制作的,我想在输入焦点时弹出系统屏幕键盘。这是我当前的代码:

用于将入口小部件与 FocusIn 事件绑定:

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

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

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

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

【问题讨论】:

    标签: python tkinter keyboard tkinter-entry


    【解决方案1】:

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

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

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

    florence hide
    florence show
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      相关资源
      最近更新 更多