Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2025 18:34:32

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить функцию если пользователь меняет текущее диалоговое окно?

Возможно?

Офлайн

#2 Янв. 4, 2025 18:53:41

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 51
Репутация: +  1  -
Профиль   Отправить e-mail  

Выполнить функцию если пользователь меняет текущее диалоговое окно?

Насколько я могу понять вопрос - возможно. Например, привязав к окну обработку события <<Leave>>. Или к другому окну - событие <<Enter>>.

Офлайн

#3 Янв. 5, 2025 05:10:28

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить функцию если пользователь меняет текущее диалоговое окно?

Идея не понятна, можно пример?
Думал процесс оставить в фоне и после нажатия на значек панели задачь или “alt - tab”, отслеживать изменения последовательности в списке диалоговых окон,.но реализовать не получилось.
Получил список и используемое в данный момент диалоговое окно:

 import pygetwindow
my_list = (pygetwindow.getAllTitles()) # получение списка открытых окон
new_list = [] # удаление пустых элементов из списка ''
for item in my_list:
    if item != '':
        new_list.append(item)
print(new_list)
first_element = new_list[0] # получение используемого в данный момент окна
print(first_element)

Офлайн

#4 Янв. 5, 2025 23:31:04

Alex.Pro.
От: Марик
Зарегистрирован: 2024-11-13
Сообщения: 51
Репутация: +  1  -
Профиль   Отправить e-mail  

Выполнить функцию если пользователь меняет текущее диалоговое окно?

Видимо, в первый раз я понял вопрос совсем неправильно. Мониторить окна за пределами собственной программы - задача не для новичка (по крайней мере - не для меня).
А пример решения задачи можно посмотреть здесь.

Офлайн

#5 Янв. 5, 2025 23:48:46

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Выполнить функцию если пользователь меняет текущее диалоговое окно?

  
import tkinter as tk
 
def on_focus_lost():
    print("Окно потеряло фокус")
 
root = tk.Tk()
 
def check_focus():
    if root.focus_get() is None:  # Если фокус не на окне
        on_focus_lost()
    root.after(1000, check_focus)  # Проверка каждую секунду
 
check_focus()
 
root.mainloop()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version