Я использую pygame для загрузки изображения (Count.png, просто файл png на сером фоне) в качестве счетчика наложения для всего, что в данный момент отображается на экране.Во время этого процесса, если я позволю этому запускаться в течение 5 минут все внезапно, изображение прекращает загрузку (не отображается в координатах 300x300), но программа продолжает работать, означая, что действие, привязанное к счетчику, продолжается.В этом случае простым нажатием клавиши e.Как правильно «закрыть» изображение, чтобы его можно было снова открыть или предотвратить исчезновение (не совсем понятно, что происходит с изображением, оно отображается на панели задач, и действие по-прежнему выполняется каждые x секунд)?
То, что вы увидите, это счетчик, который просто отсчитывает все изображения, сохраненные как Count.png.Это запускается из простой кнопки tkinter.Кнопка запускает процесс автоматизации и запускает этот счетчик.Когда счетчик достигает 0, процесс перезапускается, который должен включать счетчик.Я выписал все части кроме окна tkinter с кнопкой.Файл icon.ico - это именно то, что он говорит, поэтому вместо милого маленького пера на панели задач я получаю иконку, привязанную к приложению.
import os
from ctypes import windll
import pygame
import time
import pyautogui
def countingRoutine():
locx = 300
locy = 300
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (locx, locy)
pygame.init()
set_window_pos = windll.user32.SetWindowPos
screen = pygame.display.set_mode((50, 30), pygame.NOFRAME)
set_window_pos(pygame.display.get_wm_info()['window'], -1, locx, locy, 0, 0,
0x0001)
clock = pygame.time.Clock()
counter, text = 13, '00'.ljust(4)
pygame.time.set_timer(pygame.USEREVENT, 1000)
font = pygame.font.SysFont('Avatar', 23)
while True:
for e in pygame.event.get():
if e.type == pygame.USEREVENT:
if counter > 0:
counter -= 1
text = str(counter).center(0).rjust(4)
else:
main()
screen.fill((255, 191, 0))
for_trans = pygame.image.load_extended('Count.png')
loadImg = pygame.image.load_basic('icon.ico')
pygame.display.set_icon(loadImg)
screen.blit(for_trans, (0, -15))
screen.blit(font.render(text, True, (200, 0, 200)), (0, 0))
pygame.display.flip()
clock.tick(counter)
continue
def msgBox():
pyautogui.confirm("Enabling Automated process\n ", "Activating", buttons=
['Affirmative'])
def main():
while True:
pyautogui.hotkey('e')
countingRoutine()
time.sleep(13)
if __name__ == "__main__":
msgBox()
main()