Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает?

1234 5678 Ученик (147), на голосовании 3 месяца назад
 import tkinter as tk  
import pyautogui

balance = 0
doxod = 0

def check_condition():
x, y = pyautogui.position()
if x > 1806 and x < 1873 and y > 7 and y < 63:
pyautogui.hotkey('win','d')
# Если условие истинно, отображаем окно
root.deiconify() # Показать окно, если оно скрыто
root.after(100, check_condition) # Проверить снова через 100 миллисекунд
else:
# Иначе скрываем окно
root.withdraw() # Скрыть окно
root.after(100, check_condition) # Проверить снова через 100 миллисекунд

root = tk.Tk ()
root.geometry('400x200')
root.title("бизнес")
label = tk.Label(root, text="ваш баланс:", fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.2, rely = 0.1, anchor = 'w')
label = tk.Label(root, text=balance, fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.5, rely = 0.1, anchor = 'w')
label = tk.Label(root, text="ваш доход:", fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.2, rely = 0.2, anchor = 'w')
label = tk.Label(root, text=doxod, fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.5, rely = 0.2, anchor = 'w')
root.withdraw() # Скрыть окно изначально

# Добавьте содержимое вашего окна (кнопки, текст и т.д.) здесь

check_condition() # Запуск проверки условия

root.mainloop()

всё работает отлично кроме
 pyautogui.hotkey('win','d')  
из-за того что мышь долго находиться на нужных координатах окна, в том числе и root постоянно сворачиваються. как это можно исправить?
Голосование за лучший ответ
Даниил Линник Знаток (462) 4 месяца назад
Вы можете добавить проверку, чтобы pyautogui.hotkey('win','d') выполнялась только один раз, когда окно только отобразилось. Для этого вы можете использовать переменную для отслеживания того, было ли уже выполнено скрытие окна или нет. Вот как это можно сделать:

import tkinter as tk
import pyautogui

balance = 0
doxod = 0
hide_window = False

def check_condition():
x, y = pyautogui.position()
if x > 1806 and x < 1873 and y > 7 and y < 63 and not hide_window:
pyautogui.hotkey('win','d')
hide_window = True
root.deiconify()
elif not hide_window:
root.withdraw()

root.after(100, check_condition)

root = tk.Tk ()
root.geometry('400x200')
root.title("бизнес")
label = tk.Label(root, text="ваш баланс:", fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.2, rely = 0.1, anchor = 'w')
label = tk.Label(root, text=balance, fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.5, rely = 0.1, anchor = 'w')
label = tk.Label(root, text="ваш доход:", fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.2, rely = 0.2, anchor = 'w')
label = tk.Label(root, text=doxod, fg='#000')
label.config(font=("Courier", 10))
label.place(relx = 0.5, rely = 0.2, anchor = 'w')
root.withdraw()

check_condition()

root.mainloop()



Теперь pyautogui.hotkey('win','d') будет вызываться только один раз при первом отображении окна.
Похожие вопросы