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