Как я получаю разрешение монитора в Python?

Что самый простой путь состоит в том, чтобы получить разрешение монитора (предпочтительно в кортеже)?

98
задан nbro 18 May 2015 в 01:44
поделиться

5 ответов

В Windows:

from win32api import GetSystemMetrics

print("Width =", GetSystemMetrics(0))
print("Height =", GetSystemMetrics(1))

Если вы работаете с экраном с высоким разрешением, убедитесь, что ваш интерпретатор Python имеет HIGHDPIAWARE.

На основе этого сообщения.

58
ответ дан 24 November 2019 в 05:08
поделиться

Если вы используете wxWindows, вы можете просто сделать:

import wx

app = wx.App(False) # the wx.App object must be created first.    
print(wx.GetDisplaySize())  # returns a tuple
44
ответ дан 24 November 2019 в 05:08
поделиться

Используя Linux, самый простой способ - выполнить команду bash

xrandr | grep '*'

и разобрать ее вывод с помощью regexp.

Также это можно сделать через PyGame: http://www.daniweb.com/forums/thread54881.html

12
ответ дан 24 November 2019 в 05:08
поделиться

И для полноты картины Mac OS X

import AppKit
[(screen.frame().size.width, screen.frame().size.height)
    for screen in AppKit.NSScreen.screens()]

предоставит вам список кортежей, содержащих все размеры экрана (при наличии нескольких мониторов)

18
ответ дан 24 November 2019 в 05:08
поделиться

В Windows вы также можете использовать ctypes с GetSystemMetrics () :

import ctypes
user32 = ctypes.windll.user32
screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)

, так что вам не нужно устанавливать пакет pywin32; ему не нужно ничего, что не поставляется с самим Python.

Для настроек с несколькими мониторами вы можете получить общую ширину и высоту виртуального монитора:

import ctypes
user32 = ctypes.windll.user32
screensize = user32.GetSystemMetrics(78), user32.GetSystemMetrics(79)
107
ответ дан 24 November 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: