Provare a scrivere un'applicazione python che scarica immagini da un feed RSS e crea uno sfondo composito. Come posso ottenere l'attuale risoluzione del desktop su Mac OS X (leopardo?)Come ottenere la risoluzione del desktop in Mac tramite Python?
risposta
Con Pyobjc qualcosa del genere dovrebbe funzionare. Pyobjc viene con Leopard.
from AppKit import NSScreen
print(NSScreen.mainScreen().frame())
Con questo, si può anche afferrare la larghezza e l'altezza.
NSScreen.mainScreen().frame().size.width
NSScreen.mainScreen().frame().size.height
Ad esempio:
print("Current screen resolution: %dx%d" % (NSScreen.mainScreen().frame().size.width, NSScreen.mainScreen().frame().size.height))
Sì, pyobjc è piuttosto qualcosa. Ed è su ogni mac fin da Leopard. E ricorda che quando usi effettivamente questo numero di utenti Mac hanno più di uno schermo. Quindi spiegalo quando è necessario. Vedi i documenti di Apple su NSScreen per maggiori informazioni. –
Come al solito, l'utilizzo di funzionalità collegate a un sistema operativo è una pessima idea. Esistono centinaia di librerie portatili in Python che ti danno accesso a tali informazioni. Il primo che mi viene in mente è ovviamente Pygame:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640,480), FULLSCREEN)
x, y = screen.get_size()
ma credo che il cacao fare altrettanto buono, e per questo wxPython o Qt è tuo amico. Suppongo che su Windows che hai fatto qualcosa di simile:
from win32api import GetSystemMetrics
width = GetSystemMetrics [0]
height = GetSystemMetrics [1]
Certo è più facile, ma non funziona su Mac, Linux, BSD, Solaris, e probabilmente non molto più tardi versione per Windows.
Se si sta facendo questo da uno script LaunchAgent, potrebbe essere necessario scendere fino a CoreGraphics primitive piuttosto che metodi AppKit livello. Lavorando su questo oggi, il mio script caricato da LaunchAgent ottiene None
indietro da NSScreen.mainScreen()
, ma funziona bene se lo carico da un terminale nella mia sessione.
from Quartz import CGDisplayBounds
from Quartz import CGMainDisplayID
def screen_size():
mainMonitor = CGDisplayBounds(CGMainDisplayID())
return (mainMonitor.size.width, mainMonitor.size.height)
ho avuto un momento difficile ottenere tutto questo a lavorare così mi sono guardato intorno e mettere insieme qualcosa che sembra funzionare. Sono un po 'nuovo alla codifica quindi scusate eventuali errori. Se avete qualche pensiero per favore commentate.
results = str(subprocess.Popen(['system_profiler SPDisplaysDataType'],stdout=subprocess.PIPE, shell=True).communicate()[0])
res = re.search('Resolution: \d* x \d*', results).group(0).split(' ')
width, height = res[1], res[3]
return width, height
- 1. Come posso ottenere la versione del kernel di Android tramite adb (o tramite comando Python)?
- 2. Sviluppo tramite Desktop remoto
- 3. Come ottenere la struttura del database in MySQL tramite query
- 4. QT ottenere la risoluzione dello schermo senza il monitor esteso
- 5. libgdx ClassNotFoundException all'avvio del desktop principale - Mac, IntelliJ
- 6. Unisci risoluzione del conflitto
- 7. Desktop che crea una finestra del desktop?
- 8. Decodifica del testo Mac OS in Python
- 9. Come posso ottenere la risoluzione dello schermo in R
- 10. Come posso ottenere la risoluzione dello schermo in java?
- 11. Come ottenere la risoluzione dello schermo in Android Honeycomb?
- 12. Come ottenere la risoluzione dello schermo in C++?
- 13. Risoluzione ODE numerica in Python
- 14. Come ottenere il percorso desktop in Java
- 15. Come ottenere la posizione del carattere in alfabeto in Python 3.4?
- 16. Come modificare la codifica del file system tramite python?
- 17. Python, cercando di ottenere l'estensione del file tramite l'URL
- 18. come ottenere l'indirizzo MAC del dispositivo connesso bluetooth in Android
- 19. Come posso cambiare lo sfondo del mio desktop con python?
- 20. Come ottenere l'indirizzo IP del client desktop remoto?
- 21. Ottenere la risoluzione dello schermo usando PHP
- 22. Come ottenere il nome utente del processo tramite PID su Mac OS?
- 23. Come ottenere la classe Desktop supportata su Linux?
- 24. Ricerca desktop di Windows tramite C#
- 25. Ruby su Mac OSX tramite porte Mac
- 26. Come utilizzare la risoluzione video personalizzata quando si usano AVFoundation e AVCaptureVideoDataOutput su mac
- 27. Mantenere "viva" la sessione del desktop remoto
- 28. Come impostare la risoluzione del conflitto svn con la combinazione?
- 29. Icona ad alta risoluzione per file in Mac OS X?
- 30. In che modo la risoluzione e l'invocazione del metodo funzionano internamente in Python?
è perché si utilizzano le funzionalità di Windows per fare cose invece di lib multipiattaforma. Ti stai chiudendo in una trappola. Per la manipolazione delle immagini, utilizzare PIL. –
Alan: controlla questo: http://developer.apple.com/graphicsimaging/pythonandquartz.html –