2015-07-22 3 views
1

Я создаю маленькое приложение для себя, чтобы иметь возможность показать свои ввод данных с клавиатуры и показать их в макете джойстиков, как это:Получите входы без фокуса в Python/Pygame?

Current view of my App

это само по себе, отлично работает в то время как окна Pygame сфокусирована , моя проблема в том, что я не могу постоянно фокусироваться на этом, на самом деле у него никогда не будет фокуса, потому что в любом случае я буду использовать OBS для потоковой передачи, или я буду использовать свой эмулятор, а pygame не обнаружит входные данные, которые из окна. Есть ли способ заставить python или pygame прочитать все входящие данные на компьютер ??? Я бью стену здесь. Заранее спасибо!!

+0

Pygame не может сделать это с вашей обработкой событий, так как он только прослушивает события окна. Что вы ищете для крючков низкого уровня, посмотрите здесь [Применение низкоуровневых клавиатурных крючков с Python и SetWindowsHookExA] (https://stackoverflow.com/questions/9817531/applying-low-level-keyboard-hooks -with-python-and-setwindowshookexa) для примера. – sloth

ответ

0

Использование pygame.event.grab(True)

Когда программа запускается в оконном среде, она будет делить мыши и клавиатуры устройства с другими приложениями, которые имеют фокус. Если ваша программа устанавливает захват события в значение «Истина», он заблокирует все входные данные в вашей программе. Лучше не всегда захватывать входные данные, так как он не позволяет пользователю выполнять другие функции в своей системе.

Вам понадобится еще один способ выхода, поскольку вы не сможете вывести мышь из окна дисплея.

+0

Вы говорите о set_grab()? Это не работает, попробовал это уже. – NyxTheShield

+0

Да, я был. Извините за орфографию. Жаль, что это не работает. – pydude

Смежные вопросы