Я работаю над проектом приложения для чата с использованием tkinter, работающего на ОС python 3.7 и Windows 10. Одной из вещей, которую я хотел бы добавить в свое приложение, является возможность открытия Windows сенсорной клавиатуры .
Хотя вы можете открыть клавиатуру, нажав ее кнопка на панели задач , я хотел бы дать доступ к ней из моего приложения. Моя идея состоит в том, чтобы связать виджет Entry, используемый в качестве строки консоли моего приложения, с событием, которое при каждом возникновении вызывает всплывающую сенсорную клавиатуру. Я, вероятно, буду использовать событие '<FocusIn>'
, что означает, что фокус клавиатуры перемещен на него. Вот краткий пример механики:
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()
ВНИМАНИЕ: Сенсорная клавиатура НЕ является экранной клавиатурой . Я не хочу использовать эту клавиатуру, потому что она появляется как новое окно, а не как окно Toplevel, которое блокирует мое приложение для чата. Что еще более важно, у него нет клавиатуры Emoji :) Простой способ открыть экранную клавиатуру, запустив следующие строки:
import os
os.system('osk')
Я искал по всему rnet решение, но все они, кажется, обрабатывают экранную клавиатуру. Если кто-то знает, как мне помочь или перенаправить меня к источнику, который объясняет, как с этим обращаться, он более чем рад этому, потому что я застрял прямо сейчас: /