как узнать разрешение монитора python
Как получить разрешение монитора в Python?
какой самый простой способ получить разрешение монитора (желательно в кортеж)?
22 ответов
Если вы работаете с экраном с высоким разрешением, убедитесь, что ваш интерпретатор python является HIGHDPIAWARE.
В Windows вы также можете использовать ctypes с GetSystemMetrics() :
Так что вам не нужно установить пакет pywin32; ему не нужно ничего, что не поставляется с самим Python.
для настройки нескольких мониторов вы можете получить комбинированную ширину и высоту виртуального монитора:
Я создал модуль PyPI для этого:
он поддерживает несколько сред монитора. Его цель-быть кросс-платформенной; на данный момент он поддерживает Cygwin и X11, но запросы pull полностью приветствуются.
Если вы используете wxWindows, вы можете просто сделать:
взято непосредственно из ответа на этот пост:Как получить размер экрана в Tkinter?
В Windows 8.1 я не получаю правильное разрешение ни от ctypes, ни от tk. У других людей такая же проблема для ctypes:getsystemmetrics возвращает неправильный Размер экрана Чтобы получить правильное полное разрешение монитора с высоким DPI в windows 8.1, необходимо вызвать SetProcessDPIAware и использовать следующий код:
Полная Информация Ниже:
я узнал, что это потому, что windows сообщает масштабированное разрешение. Похоже, что python по умолчанию является приложением «system dpi aware». Типы приложений с поддержкой DPI перечислены здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dn469266%28v=vs.85%29.aspx#dpi_and_the_desktop_scaling_factor
В основном, вместо отображения содержимого с полным разрешением монитора, которое сделало бы шрифты крошечными, содержимое масштабируется до тех пор, пока шрифты не станут достаточно большими.
на моем мониторе я:
Физическое разрешение: 2560 x 1440 (220 DPI)
Сообщенное разрешение python: 1555 x 875 (158 DPI)
на этом сайте windows:http://msdn.microsoft.com/en-us/library/aa770067%28v=vs.85%29.aspx Формула для эффективного разрешения системы reported: (reported_px*current_dpi)/(96 dpi) = physical_px
Я могу получить правильное разрешение полного экрана и текущий DPI с приведенным ниже кодом. Обратите внимание, что я вызываю SetProcessDPIAware (), чтобы программа могла видеть реальное разрешение.
я запускаю windows 8.1 с монитором с поддержкой 220 DPI. Масштабирование дисплея устанавливает текущий DPI на 158.
Я буду использовать 158, чтобы убедиться, что мои графики matplotlib имеют правильный размер с: из pylab импортировать rcParams rcParams [‘рисунок.dpi’] = curr_dpi
Как определить разрешение экрана?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Pygame и разрешение экрана
Доброго времени суток. У меня созрел вопрос: имеется ноутбук с разрешением экрана 1920 х 1080.
Как определить разрешение экрана
10,200,30,40 типа такое если такая картинку расширений чтобы знать как нарисовать картину
Как определить текущее разрешение экрана
Как определить текущее разрешение экрана?
Решение
Решение
Добавлено через 27 минут
Если через PyQt5, то например так:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как определить разрешение экрана в Access при помощи кода?
Буду признателен, если кто-то поможет в вопросе определения разрешения экрана из кода в Access, в.
Как получить масштаб элементов экрана или реальное разрешение экрана
Как получить разрешение экрана с учетом масштабирования, вот такой код и подобный ему дает неверный.
Как установить разрешение экрана 1440х900 если его нет в списке настроек экрана
По причине слабости компа скачал Виндовс 7 Реактор. Работает молниеносно, однако, есть весьма.
Как получить разрешение монитора в Python?
Какой самый простой способ получить разрешение монитора (желательно в кортеже)?
27 ответов
Если вы работаете с экраном с высоким разрешением, убедитесь, что ваш интерпретатор Python имеет HIGHDPIAWARE.
Для более поздних версий PyGtk:
Это немного хлопотно для экрана сетчатки, я использую tkinter, чтобы получить поддельный размер, использую pilllow grab, чтобы получить реальный размер:
В Linux мы можем использовать модуль подпроцесса
Если вы работаете в ОС Windows, вы можете использовать модуль ОС, чтобы получить его:
Вы можете использовать PyMouse. Чтобы получить размер экрана, просто используйте атрибут screen_size() :
Другая версия, использующая xrandr :
Чтобы получить биты на пиксель:
Тем не менее, если вы пытаетесь установить окно в соответствии с размером экрана, вы можете просто сделать следующее:
Установить ваш дисплей в полноэкранный режим. [2]
Использование Linux Вместо регулярных выражений возьмите первую строку и выведите текущие значения разрешения.
Текущее разрешение экрана: 0
Это было сделано на xrandr 1.3.5, я не знаю, отличается ли вывод на других версиях, но это должно облегчить понимание.
Попробуйте следующий код:
Если у вас установлен PyQt4, попробуйте следующий код:
Для PyQt5 будет работать следующее:
Расширение ответа @ user2366975, чтобы получить текущий размер экрана в многоэкранной настройке с использованием Tkinter (код на Python 2/3 ) :
(Должен работать кроссплатформенно, протестировано только на Linux)
Я использую метод get_screen_resolution в одном из моих проектов, подобных приведенному ниже, который по сути является цепочкой импорта. Вы можете изменить это в соответствии с Вашими потребностями, удалив ненужные детали и переместив более вероятные порты вверх по цепочке.
Вот небольшая небольшая программа на Python, которая отобразит информацию о настройке вашего монитора:
Вот пример его вывода:
И проанализировать его вывод с помощью регулярного выражения.
И для полноты, Mac OS X
Выдаст список кортежей, содержащих все размеры экрана (если присутствует несколько мониторов)
Полная информация ниже:
По сути, вместо отображения контента с полным разрешением монитора, что может привести к уменьшению шрифтов, контент масштабируется до тех пор, пока шрифты не станут достаточно большими.
На моем мониторе я получаю:
Физическое разрешение: 2560 x 1440 (220 DPI)
Заявленное разрешение Python: 1555 x 875 (158 DPI)
Для этого сайта Windows: http: // msdn. microsoft.com/en-us/library/aa770067%28v=vs.85%29.aspx Формула для эффективного разрешения системы: (сообщил_px * current_dpi) / (96 т / д) = физический_px
Я могу получить правильное разрешение экрана и текущий DPI с приведенным ниже кодом. Обратите внимание, что я вызываю SetProcessDPIAware (), чтобы программа могла видеть реальное разрешение.
Я использую Windows 8.1 с монитором с разрешением 220 точек на дюйм. Моё масштабирование экрана устанавливает мой текущий DPI на 158.
Я буду использовать 158, чтобы убедиться, что мои графики matplotlib имеют правильный размер с: из pylab import rcParams rcParams [‘figure.dpi’] = curr_dpi
Взято прямо из ответа на этот пост: Как получить размер экрана в Tkinter?
Как получить разрешение монитора в Python?
Каков самый простой способ получить разрешение монитора (желательно в кортеже)?
Основываясь на этом
В Windows,
вы также можете использовать ctypes:
так что вам не нужно устанавливать пакет pywin32;
ему не нужно ничего, что не связано с самим Python.
FYI Я создал модуль PyPI по этой причине:
Если вы используете wxWindows, вы можете просто:
Взято непосредственно из ответа на этот пост: Как получить размер экрана в Tkinter?
В Windows 8.1 я не получаю правильное разрешение от ctypes или tk.
У других людей такая же проблема для ctypes: getsystemmetrics возвращает неправильный размер экрана
Чтобы получить правильное полное разрешение высокого монитора DPI на окнах 8.1, нужно вызвать SetProcessDPIAware и использовать следующий код:
Подробные сведения ниже:
Я узнал, что это потому, что окна сообщают о масштабированном разрешении. Похоже, что python по умолчанию представляет собой приложение с поддержкой «dpi». Ниже перечислены типы приложений, поддерживающих DPI:
http://msdn.microsoft.com/en-us/library/windows/desktop/dn469266%28v=vs.85%29.aspx#dpi_and_the_desktop_scaling_factor
В основном, вместо того, чтобы отображать контент с полным разрешением монитора, что сделало бы шрифты крошечными, содержимое масштабируется до тех пор, пока шрифты не станут достаточно большими.
На моем мониторе я получаю:
Физическое разрешение: 2560 x 1440 (220 DPI)
Сообщенное разрешение python: 1555 x 875 (158 DPI)
В этом окне: http://msdn.microsoft.com/en-us/library/aa770067%28v=vs.85%29.aspx
Формула для эффективного разрешения системы:
(сообщено_px * current_dpi)/(96 dpi) = физическое_px
Я могу получить правильное полноэкранное разрешение и текущий DPI с приведенным ниже кодом.
Обратите внимание, что я вызываю SetProcessDPIAware(), чтобы программа могла видеть реальное разрешение.
Я запускаю Windows 8.1 с монитором, поддерживающим 220 DPI.
Мое масштабирование экрана устанавливает мой текущий DPI на 158.
Как получить разрешение монитора в Python?
Каков самый простой способ получить разрешение монитора (желательно в кортеже)?
ОТВЕТЫ
Ответ 1
Если вы работаете с экраном с высоким разрешением, убедитесь, что ваш интерпретатор Python имеет HIGHDPIAWARE.
На основании этого поста.
Ответ 2
В Windows вы также можете использовать ctypes с GetSystemMetrics() :
так что вам не нужно устанавливать пакет pywin32; ему не нужно ничего, что не поставляется с самим Python.
Для установок с несколькими мониторами вы можете получить объединенную ширину и высоту виртуального монитора:
Ответ 3
Я создал модуль PyPI по этой причине:
Ответ 4
Если вы используете wxWindows, вы можете просто:
Ответ 5
Взято непосредственно из ответа на этот пост: Как получить размер экрана в Tkinter?
Ответ 6
В Windows 8.1 я не получаю правильное разрешение от ctypes или tk. У других людей возникает такая же проблема для ctypes: getsystemmetrics возвращает неправильный размер экрана. Чтобы получить правильное полное разрешение монитора с высоким DPI в Windows 8.1, необходимо вызвать SetProcessDPIAware и использовать следующий код:
Полная информация ниже:
Я узнал, что это потому, что Windows сообщает масштабированное разрешение. Похоже, что Python по умолчанию является приложением, поддерживающим систему dpi. Типы приложений с поддержкой DPI перечислены здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dn469266%28v=vs.85%29.aspx#dpi_and_the_desktop_scaling_factor
По сути, вместо отображения контента с полным разрешением монитора, что может привести к уменьшению размеров шрифтов, контент масштабируется до тех пор, пока шрифты не станут достаточно большими.
На моем мониторе я получаю:
Физическое разрешение: 2560 x 1440 (220 DPI)
Заявленное разрешение python: 1555 x 875 (158 DPI)
Для этого сайта Windows: http://msdn.microsoft.com/en-us/library/aa770067%28v=vs.85%29.aspx Формула для эффективного разрешения системы, о которой сообщается, имеет вид: (reports_px * current_dpi)/(96 точек на дюйм) ) = Physical_px
Я могу получить правильное разрешение экрана и текущий DPI с приведенным ниже кодом. Обратите внимание, что я вызываю SetProcessDPIAware(), чтобы программа могла видеть реальное разрешение.
Я использую Windows 8.1 с монитором с разрешением 220 точек на дюйм. Моё масштабирование экрана устанавливает мой текущий DPI на 158.
Я буду использовать 158, чтобы убедиться, что мои графики Matplotlib имеют правильный размер с: из pylab import rcParams rcParams [‘figure.dpi’] = curr_dpi
Ответ 7
И для полноты, Mac OS X
предоставит вам список кортежей, содержащих все размеры экрана (если присутствует несколько мониторов)
Ответ 8
Ответ 9
и проанализировать его вывод, используя regexp.
Ответ 10
Вот небольшая небольшая программа Python, которая отобразит информацию о вашей настройке нескольких мониторов:
Вот пример его вывода:
Ответ 11
Я использую метод get_screen_resolution в одном из моих проектов, подобных приведенному ниже, который является в основном цепочкой импорта. Вы можете изменить это в соответствии с вашими потребностями, удалив те части, которые не нужны, и перемещайте более вероятные порты вверх в цепочке.
Ответ 12
Измерьте размер, сделав скриншот. Поскольку размер экрана не должен меняться, это должно быть сделано только один раз. Существуют более элегантные решения, если у вас установлен графический инструментарий, такой как GTK, wx.
Ответ 13
Ответ 14
Если у вас установлен PyQt4, попробуйте следующий код:
Для PyQt5 будет работать следующее:
Ответ 15
Попробуйте использовать следующий код:
Ответ 16
Использование Linux Вместо regexp возьмите первую строку и выньте текущие значения разрешения.
Текущее разрешение дисплея: 0
Это было сделано на xrandr 1.3.5, я не знаю, отличается ли вывод от других версий, но это должно легко понять.
Ответ 17
Расширение ответа @user2366975, чтобы получить текущий размер экрана в многоэкранной настройке с использованием Tkinter (код в Python 2/3):
(Должен работать кроссплатформенно, протестировано только на Linux)
Ответ 18
Чтобы получить бит на пиксель:
Ответ 19
Другая версия, использующая xrandr :
Ответ 20
Однако, если вы пытаетесь настроить окно на размер экрана, вы можете просто сделать:
чтобы настроить отображение в полноэкранном режиме. [2]
Ответ 21
Ответ 22
Если вы работаете в ОС Windows, вы можете использовать модуль ОС, чтобы получить его:
Ответ 23
Ответ 24
Вы можете использовать PyMouse. Чтобы получить размер экрана, просто используйте screen_size() :
Ответ 25
В Linux мы можем использовать модуль подпроцесса
Ответ 26
Это немного хлопотно для экрана сетчатки, я использую tkinter, чтобы получить поддельный размер, использую pilllow grab, чтобы получить реальный размер: