Python 有没有办法去定义()或最大化pyGame窗口?

Python 有没有办法去定义()或最大化pyGame窗口?,python,pygame,Python,Pygame,我目前正在制作一个绘图仪,而且我还处于早期阶段,所以我现在只是使用shell从用户那里获取输入。但是,由于我的程序的其他部分,我需要在pygame窗口开始输入之前打开它(我不能改变它的顺序,因为它们的输入是通过一个函数获得的,我真的不想在这个函数中打开pygame)。这会阻止shell,因此我使用了pygame.display.iconify(),它最小化了pygame窗口,以满足我的需要 我的问题是,当您完成输入时,pygame窗口仍然最小化,我希望它作为活动窗口返回。是否有这样一件事与ico

我目前正在制作一个绘图仪,而且我还处于早期阶段,所以我现在只是使用shell从用户那里获取输入。但是,由于我的程序的其他部分,我需要在pygame窗口开始输入之前打开它(我不能改变它的顺序,因为它们的输入是通过一个函数获得的,我真的不想在这个函数中打开pygame)。这会阻止shell,因此我使用了
pygame.display.iconify()
,它最小化了pygame窗口,以满足我的需要

我的问题是,当您完成输入时,pygame窗口仍然最小化,我希望它作为活动窗口返回。是否有这样一件事与iconify()相反,或者我应该完全更改代码


谢谢。

仅使用pygame无法做到这一点,但如果您使用的是Windows,则可以使用
pywin32
软件包

下面是一个每秒缩小和恢复窗口的示例:

import pygame
import win32gui
import win32con

def main():
    pygame.init()
    clock = pygame.time.Clock()
    screen = pygame.display.set_mode((200, 200))
    hwnd = win32gui.GetForegroundWindow()
    
    EVENT = pygame.USEREVENT + 1
    pygame.time.set_timer(EVENT, 1000)
    while True:

        for event in pygame.event.get():
            pos = pygame.mouse.get_pos()
            if event.type == pygame.QUIT:
                return
            if event.type == EVENT:
                if win32gui.IsIconic(hwnd):
                    win32gui.ShowWindow(hwnd, win32con.SW_SHOWNOACTIVATE)
                    win32gui.BringWindowToTop(hwnd)
                else:
                    pygame.display.iconify()

        screen.fill((30, 30, 30))
        clock.tick(30)
        pygame.display.flip()
main()

不要使用pygame.display.iconify(),因为没有对应的pygame.display.unionify()

有一种难看的方法,你可以使用pygame.display.set_mode()隐藏窗口,然后在需要时重新获得焦点和大小:

# Minimize window
pygame.display.set_mode((1,1)) 

# Restore window
pygame.display.set_mode((1024, 768)) 
您应该在一个独立于显示曲面的曲面上编写绘图,然后在需要显示时进行blit和翻转