How to get the resolution of a monitor in Pygame?
Asked Answered
F

4

26

I'm just wondering if it is possible for me to get the resolution of a monitor in Pygame and then use these dimensions to create a window so that launching the program detects the monitor resolution and then automatically fits the window to the screen in fullscreen.

I am currently using pygame.display.set_mode((AN_INTEGER, AN_INTEGER)) to create the window. I am aware that you can get video info including the monitor resolution using pygame.display.Info() but how can I extract these values and then use them in pygame.display.set_mode()???

Thanks in advance, Ilmiont

Farce answered 13/11, 2013 at 12:58 Comment(0)
M
51

You can use pygame.display.Info():

The docs say:

current_h, current_w: Height and width of the current video mode, or of the desktop mode if called before the display.set_mode is called.
(current_h, current_w are available since SDL 1.2.10, and pygame 1.8.0) They are -1 on error, or if an old SDL is being used.1.8.0)

pygame.display.Info() creates an Info Object with the attributes current_h and current_w. Create the Info Object before you call display.set_mode and then call display.set_mode with current_h and current_w from the object.

Example:

infoObject = pygame.display.Info()
pygame.display.set_mode((infoObject.current_w, infoObject.current_h))
Muscarine answered 13/11, 2013 at 13:4 Comment(1)
Good answer, just a note: depending on the OS, the windows may be misaligned to the window.Nissen
N
10

I don't know if this will work, but if you just want a fullscreen window use the following:

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

(of course you still have to import pygame).

Nissen answered 2/12, 2015 at 18:43 Comment(1)
The one issue with this method is that the actual screen will only take up a miscro part of the scren. So it's not the best solution. However, +1.Sletten
T
5

I don't know much about pygame, but here is a way using the module win32api:

from win32api import GetSystemMetrics

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

Update: After taking a glance at the docs, seems like you can get it from pygame.display.Info, like this:

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

Hope this helps!

Thorin answered 13/11, 2013 at 13:3 Comment(0)
R
-2
screen = pygame.display.set_mode()  # default is (0,0), so it's fullscreen

w, h = screen.get_size()  # the `screen` is a `Surface` type, so it has a get_size method
Resolve answered 30/5, 2024 at 2:17 Comment(1)
As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.Schistosomiasis

© 2022 - 2025 — McMap. All rights reserved.