我目前正在制作图形绘图仪,而且我处于早期阶段,所以我目前只是使用 shell 从用户那里获取输入。但是,由于我的程序的其他部分,我需要在他们开始输入之前打开 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()
关于python - 有没有办法 deiconify() 或最大化 pyGame 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62680570/