首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python打开触摸键盘?

如何使用python打开触摸键盘?
EN

Stack Overflow用户
提问于 2020-04-20 23:10:48
回答 1查看 839关注 0票数 2

我正在做一个聊天应用程序的项目,使用tkinter,运行在python 3.7和Windows10操作系统上。我想添加到我的应用程序中的一件事,是打开Windows的Touch Keyboard的选项。

虽然你可以通过按下键盘的button on the taskbar来打开键盘,但我想从我的应用程序中访问它。我的想法是绑定一个入口小部件,作为我的应用程序的控制台行,绑定到一个事件,无论它何时发生,它都会使Touch Keyboard弹出。我可能会使用的事件是'<FocusIn>',这意味着键盘焦点会移到它上面。这里有一个快速的例子来说明这些机制:

代码语言:javascript
运行
复制
def open_keyboard(event):
    pass # open the Touch Keyboard


root = Tk()
console = Entry(root, font=('Verdana', 14), cursor='pencil', bg='red', fg='yellow') # creating console
console.pack()

console.bind('<FocusIn>', open_keyboard) # bind the console to the event

root.mainloop()

注意:触摸键盘不是On-Screen Keyboard。我不想使用这个键盘,因为它是一个新窗口,而不是Toplevel窗口,它会阻塞我的聊天应用程序。更重要的是,它没有Emoji键盘:)打开屏幕键盘的一个简单方法是运行以下代码行:

代码语言:javascript
运行
复制
import os

os.system('osk')

我在互联网上到处寻找解决方案,但他们似乎都在处理屏幕上的键盘。如果有人知道如何帮助我或将我转移到一个解释如何处理它的来源,我们非常欢迎他这样做,因为我现在卡住了:/

EN

回答 1

Stack Overflow用户

发布于 2020-04-20 23:39:51

试试这个(代码注释中的解释)

我认为这个目录在几乎所有的Windows安装上都是一样的,但我仍然在寻找一种方法来使它独立于路径。

代码语言:javascript
运行
复制
from tkinter import *
import os

root = Tk()

def callback(event):
    # so the touch keyboard is called tabtip.exe and its located in C:\Program Files\Common Files\microsoft shared\ink
    # here we run it after focus
    os.system("C:\\PROGRA~1\\COMMON~1\\MICROS~1\\ink\\tabtip.exe")

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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61325760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档