我制作了一个使用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)
答案 0 :(得分:0)
您可以像这样获得分辨率(显示器的宽度和高度):
info = pygame.display.Info()
width = info.current_w
height = info.current_h
至于物理尺寸,是不可能得到的。但是,您可以从显示器的像素密度中推断出它。但是,该信息也无法实现,除非您愿意使用win32 API,特别是GetDpiForMonitor函数。关于如何在python中使用win32函数,有很多资源。 This主题应该让你开始。