在Python中获取物理屏幕大小

时间:2017-09-01 22:54:11

标签: python gtk screen

我制作了一个使用pygame窗口的工作程序。我在pygame窗口中有一个图片背景。程序会记录单击鼠标的位置以及释放鼠标的位置。它以像素为单位输出距离。我希望程序输出以英寸为单位的距离。有没有办法获得任何屏幕或显示器的物理和像素大小? Windows中的近乎普遍性是我的程序的要求。

import pygame, sys, math

LEFT = 1
pos1x = 0
pos2x = 0
pos1y = 0
pos2y = 0

running = True
screen = pygame.display.set_mode((1200, 1000))

back_image = pygame.image.load("Monte_Alban.jpg")
screen.blit(back_image, [0,0])
while running:

 pygame.display.flip()
 event = pygame.event.poll()
 if event.type == pygame.QUIT:
     running = False
     pygame.quit()

 elif event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
     pos1x,pos1y = pygame.mouse.get_pos()
 elif event.type == pygame.MOUSEBUTTONUP and event.button == LEFT:
     pos2x,pos2y = pygame.mouse.get_pos()
     distx = abs(pos2x-pos1x)
     disty = abs(pos2y-pos1y)
     print ("Horizontal distane equals: %d" % distx)
     print ("Vertical distance equals: %d" % disty)

1 个答案:

答案 0 :(得分:0)

您可以像这样获得分辨率(显示器的宽度和高度):

info = pygame.display.Info()
width = info.current_w
height = info.current_h

至于物理尺寸,是不可能得到的。但是,您可以从显示器的像素密度中推断出它。但是,该信息也无法实现,除非您愿意使用win32 API,特别是GetDpiForMonitor函数。关于如何在python中使用win32函数,有很多资源。 This主题应该让你开始。