HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 24.10.2023, 15:13
Shelok_Kholmes
Постоянный
Регистрация: 10.10.2018
Сообщений: 443
С нами: 3995744

Репутация: 83
По умолчанию

С помощью этой функции сделал регистрацию нажатия:







Python:





Код:
root
.
bind
(
""
,
change_text
)


, программа воспринимает нажатие клавиши только, если окно выделено, как сделать чтоб даже если выделено другое приложение, к примеру, браузер программа воспринимала нажатие клавиш.
 
Ответить с цитированием

  #2  
Старый 28.10.2023, 14:51
Python_newbie
Новичок
Регистрация: 07.06.2023
Сообщений: 0
С нами: 1546818

Репутация: 0
По умолчанию

Цитата:
Сообщение от Shelok_Kholmes  

С помощью этой функции сделал регистрацию нажатия:







Python:





Код:
root
.
bind
(
""
,
change_text
)


, программа воспринимает нажатие клавиши только, если окно выделено, как сделать чтоб даже если выделено другое приложение, к примеру, браузер программа воспринимала нажатие клавиш.
Насколько я знаю, в tkinter нет данного функционала, но можно использовать библиотеку pynput. (pip install pynput). Она отслеживает нажатие любой клавиши

Снипет:





Код:
from
pynput
import
keyboard
def
on_key_press
(
key
)
:
print
(
key
)
# Принт нажатой клавиши
with
keyboard
.
Listener
(
on_press
=
on_key_press
)
as
listener
:
listener
.
join
(
)


Так-же можно проверять отдельно нажатую клавишу:

Снипет2:





Код:
import
sys
from
pynput
import
keyboard
def
on_key_press
(
key
)
:
if
key
==
keyboard
.
Key
.
space
:
print
(
"Пробел"
)
elif
key
==
keyboard
.
Key
.
esc
:
sys
.
exit
(
)
with
keyboard
.
Listener
(
on_press
=
on_key_press
)
as
listener
:
listener
.
join
(
)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.