Я ищу способ получить физические размеры экранов для компьютера под управлением macOS. У меня есть один для Windows, но не Mac, так как у меня нет компьютера Mac. Я почти уверен, что mac не может использовать dll (не эксперт), поэтому все, что вам нужно изменить, - это переменная usermac
. Пожалуйста, постарайтесь не использовать Tkinter, так как он использует dpi, определенный Python (я думаю, именно так он и называется), где, если экран масштабируется, например, до 150%, он даст разрешение экрана 150% вместо разрешения экрана 100%. , но если этого нельзя избежать, то это нормально.
Попытка: я не могу попробовать / попробовать один для Mac, так как у меня только компьютеры Windows ...
TLDR: нужен кодопределить физическое разрешение с предпочтительными типами ctypes
import sys
from sys import platform
import tkinter as tk
root = tk.Tk()
wpx = root.winfo_screenwidth()
hpx = root.winfo_screenheight()
if platform == 'win32':
import ctypes
userwin = ctypes.windll.user32
userwin.SetProcessDPIAware()
[w, h] = [userwin.GetSystemMetrics(0), userwin.GetSystemMetrics(1)]
cdpi = w*96/wpx
myappid = 'mycompany.myproduct.subproduct.version'
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
elif platform == 'darwin':
usermac = ctypes.cdll.kernel32
usermac.SetProcessDPIAware()
[w, h] = [usermac.GetSystemMetrics(0), usermac.GetSystemMetrics(1)]
cdpi = w*96/wpx
Ожидание: если платформа darwin, то w и h вернут реальное разрешение компьютера, а не масштабированное