【问题标题】:How to get the resolution of a monitor in Pygame?如何在 Pygame 中获取显示器的分辨率?
【发布时间】:2013-11-26 02:16:40
【问题描述】:

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

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

提前致谢, 伊尔蒙

【问题讨论】:

    标签: python window pygame resolution dimensions


    【解决方案1】:

    我对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
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      你可以使用pygame.display.Info():

      docs 说:

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

      pygame.display.Info() 创建一个具有current_hcurrent_w 属性的信息对象。 在调用display.set_mode 之前创建信息对象,然后从对象调用display.set_modecurrent_hcurrent_w

      示例:

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

      【讨论】:

      • 是的,我明白了,但我想我一定是叫错了......我的代码如下:
      • pygame.display.Info()
      • pygame.display.set_mode((current_w, current_h))
      • 感谢 Mailerdaimon;只需两行代码即可完美运行!非常感谢,我已将您的回答标记为有用并被接受。
      • 很好的答案,请注意:视操作系统而定,窗口可能与窗口不对齐。
      【解决方案3】:

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

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

      (当然你还是要import pygame)。

      【讨论】:

      • 这种方法的一个问题是实际屏幕只会占据屏幕的一小部分。所以这不是最好的解决方案。但是,+1。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多