Как получить разрешение экрана Python

Обновлено: 21.11.2024

В этом руководстве по Python мы узнаем, как управлять размером экрана в черепахе Python, а также рассмотрим различные примеры, связанные с размером экрана черепахи. И мы рассмотрим эти темы.

  • Размер экрана черепахи Python
  • Размер окна черепахи Python
  • Размер экрана черепахи Python
  • Черепаха Python получает размер экрана
  • Размер экрана черепахи Python по умолчанию

Размер экрана черепахи Python

В этом разделе мы узнаем, как управлять размером экрана в черепахе Python.

Размер экрана аналогичен размеру окна, где мы можем запускать приложения и даже настраивать экран в соответствии с требованиями к окну. Мы используем функцию screensize(), чтобы задать ширину и высоту.

Код:

В следующем коде мы будем импортировать модуль черепахи из Turtle import *, import Turtle.

Для установки размера экрана используется файл turtle.screensize(canvwidth=500, canvheight=300,bg="black").

Вывод:

В следующем выводе мы видим следующую пустую консоль, где название приложения дается с именем Python Turtle Graphics.

Размер окна черепахи Python

В этом разделе мы узнаем, как управлять размером окна в черепахе Python.

Размер окна используется для указания ширины и высоты окна. В котором мы используем функцию screensize(), которая помогает задать размер окну и цвет консоли окна, видимого пользователю. И даже мы можем дать возможность изменить фоновую тему окна в соответствии с требованиями пользователя.

Код:

В следующем коде мы будем импортировать модуль черепахи из Turtle import *, import Turtle.

turtle.screensize(canvwidth=500, canvheight=500,bg="green") используется для установки размера окна.

Вывод:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы можем видеть окно. Мы можем настроить размер окна, соответственно задав их высоту и ширину.

Размер экрана черепахи Python

В этом разделе мы узнаем о размерах экрана в черепахе Python.

Screen Dimension используется для указания размера экрана, где мы назначаем ширину и высоту экрана. И назначьте его размер с помощью функции screensize().

Код:

В дальнейшем мы будем импортировать модуль черепахи из файла Turtle import *, import Turtle.

  • turtle.screensize(250,200) используется для установки размера экрана.
  • print(turtle.screensize()) используется для печати размера в командной строке.

Вывод:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что размер экрана печатается в командной строке.

Черепаха Python получает размер экрана

В этом разделе мы узнаем, как получить размер экрана в черепахе Python.

Размер экрана используется для указания высоты и ширины экрана. Мы получаем размер экрана из функции screensize(). Мы также можем изменить размер экрана, изменив высоту и ширину экрана.

Код:

В следующем коде мы будем импортировать модуль черепахи из импорта черепахи *, импортировать черепаху как tur, из которого мы можем получить размер экрана, просто указав высоту и ширину экрана.

  • tur.width(2) используется для установки ширины черепахи.
  • tur.speed(10) используется для установки скорости черепахи, а 10 — нормальная скорость.
  • tur.screensize(canvwidth=400, canvheight=300,bg="cyan") используется, чтобы получить экран, просто установив размер экрана, а также задав цвет фона для экрана.

Вывод:

После выполнения приведенного выше кода мы получаем следующий вывод, на котором мы видим экран, на котором фигура нарисована с помощью черепахи, а цвет также отображается на заднем плане.

Размер экрана черепахи Python по умолчанию

В этом разделе мы узнаем о размере черепахи по умолчанию в черепахе Python.

Прежде чем двигаться дальше, нам нужно немного узнать о настройках по умолчанию. Значение по умолчанию используется, когда не задана никакая другая команда для описания размера экрана.

Функция черепаха.screensize() даст нам размер по умолчанию, который отображается в командной строке. В функции screensize() высота и ширина не задаются для установки экрана, поэтому экран отображается с размером по умолчанию.

Код:

В следующем коде мы импортируем библиотеку черепахи из Turtle import *, import Turtle.

print(turtle.screensize()) используется для получения размера экрана по умолчанию.

Вывод:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что размер по умолчанию отображается в командной строке.

Кроме того, ознакомьтесь с некоторыми другими руководствами по черепахе Python.

Итак, в этом руководстве мы обсудим размер экрана черепахи Python, а также рассмотрели различные примеры, связанные с его реализацией. Вот список примеров, которые мы рассмотрели.

  • Размер экрана черепахи Python
  • Размер окна черепахи Python
  • Размер экрана черепахи Python
  • Черепаха Python получает размер экрана
  • Размер экрана черепахи Python по умолчанию

Предприниматель, основатель, автор, блоггер, тренер и т. д. Посмотрите мой профиль.

Недавно я искал способы получить разрешение экрана с помощью Python, чтобы помочь диагностировать проблему с приложением, которое вело себя неправильно. В этой статье мы рассмотрим некоторые способы получить разрешение экрана. Не все решения будут кросс-платформенными, но я обязательно упомяну об этом, когда буду обсуждать эти методы. Начнем!

Использование командной строки Linux

Есть несколько способов получить разрешение экрана в Linux. Если вы выполните поиск в Google, вы увидите людей, использующих различные инструменты Python GUI. Я хотел найти способ получить разрешение экрана без установки стороннего модуля. В конце концов я нашел следующую команду:

Затем мне пришлось взять эту информацию и перевести ее на Python. Вот что у меня получилось:

Всякий раз, когда вам нужно передать данные с помощью Python, вам нужно будет создать два разных экземпляра подпроцесса. Это то, что я сделал выше. Я передал вывод из xrandr моему второму подпроцессу через его стандартный ввод. Затем я закрыл стандартный вывод первого процесса, чтобы сбросить все, что он вернул второму процессу. Остальной код просто анализирует ширину и высоту монитора.

Использование PyGTK

Конечно, описанный выше метод предназначен только для Linux. Если у вас установлен PyGTK, вы можете получить разрешение экрана, используя его. Давайте посмотрим:

Это было довольно просто, так как PyGTK имеет встроенные методы. Обратите внимание, что PyGTK доступен для Windows и Linux. Предполагается, что версия для Mac также находится в разработке.

Использование wxPython

Как и следовало ожидать, набор инструментов wxPython также предоставляет метод получения разрешения экрана. Это немного менее полезно, поскольку вам действительно нужно создать объект приложения, прежде чем вы сможете получить разрешение.

Это по-прежнему простой способ получить нужное разрешение. Следует также отметить, что wxPython работает на всех трех основных платформах.

Использование Tkinter

Библиотека Tkinter обычно входит в состав Python, поэтому она должна быть установлена ​​по умолчанию. Он также обеспечивает разрешение экрана, хотя также требует создания объекта «приложение»:

К счастью, Tkinter также доступен на всех трех основных платформах, поэтому вы можете использовать этот метод практически везде.

Использование PySide/PyQt

Как вы, наверное, догадались, разрешение экрана также можно получить с помощью PySide и PyQt. Вот версия PySide:

Если вместо этого у вас есть PyQt4, вам нужно изменить импорт в начале на следующее:

Остальное то же самое. И, как вы, наверное, знаете, обе эти библиотеки доступны для Windows, Linux и Mac.

Подведение итогов

На этом этапе вы должны быть в состоянии получить разрешение экрана в любой операционной системе, в которой вы работаете. Существуют дополнительные методы получения этой информации, зависящие от платформы. Например, в Windows вы можете использовать win32api или ctypes PyWin32. На Mac есть AppKit. Но перечисленные здесь методы набора инструментов прекрасно работают на большинстве платформ, а поскольку они являются кроссплатформенными, вам не нужно использовать особые случаи для импорта определенных пакетов, чтобы это работало.

Как проще всего получить разрешение монитора (желательно в виде кортежа)?

С модулем Tkinter вы можете сделать это следующим образом. Это часть стандартной библиотеки Python, которая работает на большинстве платформ Unix и Windows.

32 Ответа 32

Я создал модуль PyPI по этой причине:

Он поддерживает среды с несколькими мониторами. Его цель — быть кроссплатформенной; на данный момент он поддерживает Cygwin и X11, но запросы на вытягивание приветствуются.

Удобный модуль (+1). Мне пришлось установить несколько требований (например, pip install cython pyobjus ), прежде чем я смог использовать его в OSX, хотя

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

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

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

Важное примечание: возвращаемые значения могут быть неверными, если используется масштабирование DPI (например, это часто бывает на дисплеях с разрешением 4k), вам необходимо вызвать SetProcessDPIAware перед инициализацией компонентов графического интерфейса (а не перед вызовом функции GetSystemMetrics). Это верно для большинства ответов здесь (GTK и т. д.) на платформе win32.

Если у вас есть внешние дисплеи, расположенные рядом с основным дисплеем, этот метод даст сумму разрешений всех дисплеев, а не текущее разрешение экрана.

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

Это лучший вариант. у кого нет wx? :) плюс несколько строчек вместо кучи кода на глазах. Теперь это мой метод по умолчанию, спасибо.

Это должно быть app = wx.App(False), иначе вы получите сообщение "Сначала должен быть создан объект wx.App". ошибка. 26 голосов и никто не проверил? Работает ли в Windows без присвоения экземпляра wx переменной?

В Windows 8.1 я не получаю правильное разрешение ни от ctypes, ни от tk. У других людей такая же проблема с ctypes: getsystemmetrics возвращает неправильный размер экрана

Чтобы получить правильное полное разрешение монитора с высоким DPI в Windows 8.1, необходимо вызвать SetProcessDPIAware и использовать следующий код:

Полная информация ниже:

По сути, вместо того, чтобы отображать контент с полным разрешением монитора, что сделало бы шрифты крошечными, контент масштабируется до тех пор, пока шрифты не станут достаточно большими.

На моем мониторе я получаю:
Физическое разрешение: 2560 x 1440 (220 точек на дюйм)
Заявленное разрешение Python: 1555 x 875 (158 точек на дюйм)

На этом сайте Windows: Настройка масштаба для экранов с более высоким разрешением. Формула для заявленного эффективного разрешения системы:

(reported_px*current_dpi)/(96 dpi) =физический_px

Я могу получить правильное полноэкранное разрешение и текущий DPI с помощью приведенного ниже кода. Обратите внимание, что я вызываю SetProcessDPIAware(), чтобы позволить программе увидеть реальное разрешение.

Я использую Windows 8.1 с монитором с разрешением 220 точек на дюйм. Мое масштабирование экрана устанавливает для моего текущего DPI значение 158.

Я буду использовать 158, чтобы убедиться, что мои графики Matplotlib имеют правильный размер с помощью:

В этой статье мы покажем, как получить разрешение экрана компьютера в Python.

Для этого мы используем модуль pyautogui.

Если вы используете компьютер с ОС Windows, этот модуль поставляется со стандартным пакетом Python. Если вы используете другие операционные системы, возможно, вам придется загрузить этот модуль извне.

Поскольку я использую компьютер с Windows, мне не нужно ничего устанавливать. Мне просто пришлось импортировать его в программу.

pyautogui — это модуль, который может выполнять множество различных динамических действий, включая отправку виртуальных нажатий клавиш и щелчков мыши в Windows.

На этой странице показано, как использовать этот модуль для получения разрешения экрана компьютера.

Разрешение компьютера – это ширина и высота экрана в пикселях.

Чем больше разрешение экрана, тем выше его четкость или четкость.

Поэтому для получения разрешения экрана компьютера используется оператор pyautogui.size().

Это показано в приведенном ниже коде.

Итак, сначала вам нужно импортировать модуль pyautogui.

Затем вы вызываете pyautogui.size(), чтобы получить разрешение экрана компьютера.

Я запустил это на своем компьютере и в ответ получил результат (1366 768).

Это означает, что на экране 1366 пикселей (ширина).

И от верхней части экрана до нижней части экрана 768 пикселей (высота).

Обычно это означает, что ширина экрана компьютера больше высоты, поскольку по ширине больше пикселей, чем по высоте.

Если вы хотите, вы можете разделить ширину и высоту.

Следующий код, показанный ниже, разделяет ширину и высоту разрешения экрана, чтобы их можно было назвать разделенными.

Итак, мы снова импортируем модуль pyautogui.

Затем мы вызываем объявление двух переменных, ширины и высоты, и присваиваем им значение pyautogui.size()

Теперь, если мы вызовем переменные, мы получим соответствующие значения ширины и высоты.

Итак, здесь показано, как в Python можно получить разрешение экрана компьютера.

Это может быть полезно, если вы в основном имеете дело с настольными приложениями, и может использоваться для создания определенных конфигураций.

Предположим, вам нужно довольно часто менять разрешение экрана. В этом случае может быть немного утомительно открывать настройки экрана Windows, выбирать предпочтительное разрешение и подтверждать, что вы хотите сохранить это разрешение.Но вы можете обойти настройки отображения Windows с помощью небольшого скрипта Python.

Вы можете найти весь код вместе с коротким сценарием установки в моем репозитории GitHub

Изменить разрешение экрана Windows с помощью Python

Решение сценария Python использует пакет pywin32, который обеспечивает доступ к Windows API из Python. Пакет легко устанавливается в виртуальную среду с помощью pip:

Изменение разрешения экрана Windows включает в себя получение объекта DEVMODE, который является структурой данных, используемой в Windows API для передачи настроек на устройство, здесь дисплей, настройки ширины и высоты разрешения экрана, а затем передачу объекта DEVMODE. в ChangeDisplaySettings(. ) . К счастью, Питер Вуд из Stack Overflow уже предоставил фрагмент кода Python, который изменяет разрешение экрана с помощью пакета pywin32:

В строках 6 и 7 новое разрешение экрана задается с помощью devmode.PelsWidth и devmode.PelsHeight для ширины и высоты в пикселях.

Перед запуском скрипта обязательно выберите разрешение, которое поддерживает ваш монитор; иначе ничего не происходит.

Добавление приложения Python на панель задач Windows 10/11

Ручной запуск приведенного выше кода лишь немногим лучше или даже хуже, чем использование настроек экрана Windows для изменения разрешения. Поэтому мы хотим добавить это приложение Python в системный трей Windows, чтобы к нему можно было легко получить доступ с помощью щелчка правой кнопкой мыши. Добавить приложение Python в системный трей довольно просто с помощью пакета pystray, который предоставляет независимый от работы API для добавления приложения Python в системный трей. Его также можно установить с помощью pip:

Изменение разрешения экрана Windows с панели задач/панели задач

С помощью этих двух фрагментов кода вы можете создать приложение Python, которое поможет вам изменить разрешение экрана из панели задач Windows:

Код Python для изменения разрешения экрана Windows теперь находится в функции on_set_resolution(width, height) и вызывается с помощью лямбда-функции из пунктов меню в строках 30 и 31. Скопируйте этот код в файл с именемresolution_switcher. .py .

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

Добавление скрипта Python в автозагрузку Windows

Вам не нужно вручную запускать это приложение Python каждый раз при загрузке компьютера, поэтому давайте добавим его в автозагрузку Windows. Во-первых, вам нужен пакетный файл, который изменяет каталог на папку, в которой находится скрипт Python, затем необходимо активировать виртуальную среду, а затем приложение Python можно запустить с помощью pythonw, чтобы не отображался графический интерфейс. Создайте пакетный файл разрешения_switcher.bat в той же папке, в которой находится скрипт Python, и добавьте следующее (адаптированное) содержимое:

Однако, если дважды щелкнуть этот пакетный файл, появится командная строка, которая не закроется, пока вы не закроете приложение Python. Для запуска приложения Python без какой-либо командной строки требуется сценарий Virtual Basic. Этот скрипт Virtual Basic также находится в папке скрипта Python и командного файла и называется Resolution_switcher.vbs:

Этот сценарий Virtual Basic обеспечивает запуск приложения на панели задач Python без командной строки Windows. Нажмите дважды, чтобы проверить это.

Ярлык сценария Virtual Basic теперь должен быть добавлен в папку автозагрузки Windows. Для этого сначала щелкните правой кнопкой мыши на разрешении_switcher.vbs и выберите «Отправить» -> «Рабочий стол» (создать ярлык). Теперь у вас на рабочем столе есть ярлык для разрешения_switcher.vbs. Теперь откройте Windows Run, нажав Win+R, введите и нажмите Enter:

Теперь перетащите ярлык на разрешение_switcher.vbs в открытом окне проводника. А когда вы перезагрузите компьютер, приложение Python Resolution Switcher будет доступно на панели задач.

Обязательно приобретите бесплатные шпаргалки по Python в моем магазине Gumroad. Если у вас есть какие-либо вопросы по этой статье, не стесняйтесь присоединиться к нашему сообществу Discord, чтобы задать их там.

Читайте также: