Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Tkinter中单击条目时如何显示默认触摸键盘?_Python_Python 3.x_Tkinter_Keyboard - Fatal编程技术网

Python 在Tkinter中单击条目时如何显示默认触摸键盘?

Python 在Tkinter中单击条目时如何显示默认触摸键盘?,python,python-3.x,tkinter,keyboard,Python,Python 3.x,Tkinter,Keyboard,我正在使用Python Tkinter库构建我的UI,我的问题如下: 我想在单击条目时显示windows 8触摸键盘。目前输入条目的唯一方法是使用物理键盘或内置键盘 例如,我有以下几点: addressInput = tk.Entry(self, font = "Verdana 20 ", justify="center") 我是否需要添加命令以强制键盘弹出?如果是,这将如何工作 如果有任何帮助,我们将不胜感激。由于我正在使用Mac电脑,因此无法提供有关如何打开屏幕键盘的完整示例。我应该告诉你

我正在使用Python Tkinter库构建我的UI,我的问题如下:

我想在单击条目时显示windows 8触摸键盘。目前输入条目的唯一方法是使用物理键盘或内置键盘

例如,我有以下几点:

addressInput = tk.Entry(self, font = "Verdana 20 ", justify="center")
我是否需要添加命令以强制键盘弹出?如果是,这将如何工作


如果有任何帮助,我们将不胜感激。

由于我正在使用Mac电脑,因此无法提供有关如何打开屏幕键盘的完整示例。我应该告诉你怎么做

但是,解决方案应该是将
聚焦于
事件绑定到
条目
小部件,如果引发给定事件,则调用该小部件:

from tkinter import *

root = Tk()

def callback(event):
    # TODO: Open keyboard here and remove print statement
    print("focus in event raised, open keyboard")

frame = Frame(root, width=100, height=100)
frame.pack()

addressInput = Entry(frame, font = "Verdana 20 ", justify="center")
addressInput.bind("<FocusIn>", callback)
addressInput.pack()

root.mainloop()
从tkinter导入*
root=Tk()
def回调(事件):
#TODO:在此处打开键盘并删除打印语句
打印(“引发事件时聚焦,打开键盘”)
框架=框架(根,宽度=100,高度=100)
frame.pack()
addressInput=输入(框,font=“Verdana 20”,justify=“center”)
addressInput.bind(“,回调)
addressInput.pack()
root.mainloop()

可以找到一些关于绑定和事件的一般信息。

再加上上面的答案,这对我来说效果很好。 确保您的系统中安装了onboard

import subprocess

def callback(event):
    pop = subprocess.Popen("exec " + "onboard", stdout= subprocess.PIPE, shell=True)

导入子流程subprocess.Popen(“osk”,stdout=subprocess.PIPE,shell=True)


将在windows 10上执行此操作

演示如何打开屏幕键盘。此外,您应该考虑将函数绑定到Entry widget的
事件中的
焦点,以便调用一个函数,然后打开屏幕键盘。感谢您的解决方案以及添加到链接中的内容。我有两个顾虑:1)如果输入失去焦点后键盘存在,那就太好了2)它会将操作系统键盘作为一个单独的窗口触发,而不是作为应用程序中的顶级弹出窗口触发。这是因为应用程序是在全屏模式下运行的,当键盘在应用程序仍处于显示状态时被触发,底部的windows开始菜单将显示,因为它的焦点现在作为一个单独的窗口在键盘上,而不是全屏,因为我没有windows机器,所以我无法对此进行更详细的测试。很抱歉。。。