如何通过Python在Mac中获得桌面分辨率?

Ala*_*lan 8 python macos

尝试编写一个从RSS源下载图像的python应用程序,并创建一个复合背景.如何在Mac OS X上获得当前的桌面分辨率(豹?)

Koe*_*Bok 13

使用Pyobjc这样的东西应该可行.Pyobjc配有Leopard.

from AppKit import NSScreen
print(NSScreen.mainScreen().frame())
Run Code Online (Sandbox Code Playgroud)

有了这个,你也可以抓住宽度和高度.

NSScreen.mainScreen().frame().size.width
NSScreen.mainScreen().frame().size.height
Run Code Online (Sandbox Code Playgroud)

例如:

print("Current screen resolution: %dx%d" % (NSScreen.mainScreen().frame().size.width, NSScreen.mainScreen().frame().size.height))
Run Code Online (Sandbox Code Playgroud)


Mik*_*des 6

如果您是从LaunchAgent脚本这样做,你可能需要下降到CoreGraphics中的原语,而不是了AppKit级的方法.今天正在处理这个问题,我的LaunchAgent加载脚本会从中None恢复NSScreen.mainScreen(),但如果我从会话中的终端加载它,则可以正常工作.

from Quartz import CGDisplayBounds
from Quartz import CGMainDisplayID

def screen_size():
    mainMonitor = CGDisplayBounds(CGMainDisplayID())
    return (mainMonitor.size.width, mainMonitor.size.height) 
Run Code Online (Sandbox Code Playgroud)