如何在Pygame中获得监视器的分辨率?

时间:2013-11-13 12:58:45

标签: python window pygame resolution dimensions

我只是想知道我是否有可能在Pygame中获得显示器的分辨率,然后使用这些尺寸创建一个窗口,以便启动程序检测显示器分辨率,然后自动使窗口适合屏幕在全屏。

我目前正在使用pygame.display.set_mode((AN_INTEGER, AN_INTEGER))来创建窗口。 我知道您可以使用pygame.display.Info()获取包括显示器分辨率的视频信息,但是如何提取这些值然后在pygame.display.set_mode()中使用它们

提前致谢, Ilmiont

3 个答案:

答案 0 :(得分:29)

您可以使用pygame.display.Info()

docs说:

  

current_h,current_w:当前视频模式的高度和宽度,或者     如果在调用display.set_mode之前调用桌面模式   (current_h,current_w自SDL 1.2.10起可用,以及pygame   1.8.0)它们在出错时为-1,或者如果使用旧的SDL,则为-1.8.0)

pygame.display.Info()创建一个包含属性current_hcurrent_w的信息对象。 在致电display.set_mode之前创建信息对象,然后从对象中display.set_modecurrent_h致电current_w

示例:

infoObject = pygame.display.Info()
pygame.display.set_mode((infoObject.current_w, infoObject.current_h))

答案 1 :(得分:4)

我不知道这是否有效,但如果您只想要一个全屏窗口,请使用以下内容:

pygame.display.set_mode((0,0),pygame.FULLSCREEN)

(当然你还需要import pygame)。

答案 2 :(得分:2)

我对pygame知之甚少,但这是一种使用模块win32api的方式:

from win32api import GetSystemMetrics

width = GetSystemMetrics(0)
height = GetSystemMetrics(1)

更新:看了docs之后,好像你可以从pygame.display.Info获取它,就像这样:

width, height = pygame.display.Info().current_w, pygame.display.Info().current_h

希望这有帮助!