pygame (нет фактической ошибки) png изображение перестает загружаться - PullRequest
0 голосов
/ 25 июня 2018

Я использую 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...