Pygame добавляет pygame.ACTIVEEVENT
s в очередь событий, когда окно свернуто / свернуто или свернуто. Вы можете проверить if event.gain == 1 and event.state == 6:
и if event.gain == 0 and event.state == 6:
, чтобы увидеть, было ли окно развернуто или свернуто. Единственная проблема заключается в том, что event.gain == 1 and event.state == 6
также True
, когда окно получает фокус ввода.
import pygame as pg
pg.init()
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
BG_COLOR = pg.Color('gray12')
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.KEYDOWN:
if event.key == pg.K_i:
pg.display.iconify()
elif event.type == pg.ACTIVEEVENT:
if event.gain == 1 and event.state == 6:
print('maximized')
elif event.gain == 0 and event.state == 6:
print('minimized')
screen.fill(BG_COLOR)
pg.display.flip()
clock.tick(60)
Если вы хотите свернуть / создать иконку окна с помощью нажатия клавиши, вы можете позвонить pygame.display.iconify()
.