Я пытаюсь создать программу, которая должна различать сенсорные события Kivy, возникающие при касании сенсорного экрана пальцем, ручкой или с помощью мыши / сенсорной панели. Kivy - новинка для меня.
Просматривая документацию по API событий касания, я обнаружил, что есть свойства типа touch.profile
или touch.uid
или другие. Я не уверен, что взять. Кажется, что каждое свойство, которое я пробовал, не возвращает уникальный идентификатор устройства, поэтому я могу определить, какое из трех «устройств», которые я упомянул, вызвало событие.
Также стоит отметить, что в выходном тексте инициализации Kivy я см .:
[INFO ] [ProbeSysfs ] device match: /dev/input/event9
[INFO ] [MTD ] Read event from </dev/input/event9>
[INFO ] [ProbeSysfs ] device match: /dev/input/event5
[INFO ] [MTD ] Read event from </dev/input/event5>
[INFO ] [Base ] Start application main loop
[WARNING] [MTD ] Unable to open device "/dev/input/event9". Please ensure you have the appropriate permissions.
[WARNING] [MTD ] Unable to open device "/dev/input/event5". Please ensure you have the appropriate permissions.
Тем не менее, моя ручка и сенсорный палец работают, тем не менее. Xournal ++ на моей Linux машине хорошо работает пером и пальцем, поэтому я не думаю, что это проблема с правами пользователя.
Например, при выводе print(touch.device)
выдается mouse
во всех трех случаях.
Я на Linux, но намереваюсь также поддерживать по крайней мере на Windows. Также найдены https://kivy.org/doc/stable/api-kivy.input.providers.mtdev.html и https://kivy.org/doc/stable/api-kivy.input.providers.probesysfs.html#module -kivy.input.providers.probesysfs , но я не уверен, что делать с этой информацией или, если она уместна, как я понял, провайдеры обнаруживается автоматически.
Альтернативы Kivy также приветствуются, хотя это выглядит как действительно хороший фреймворк, поэтому я бы предпочел придерживаться его. Любые идеи? Спасибо.