繁体   English   中英

pygame 中是否有最小化和最大化屏幕的事件处理选项?

[英]Is there an event handling option to minimize and maximize screen in pygame?

是否有任何事件处理程序可以像退出屏幕一样最小化或最大化屏幕?

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

当窗口最小化/图标化或最大化时,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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM