【发布时间】:2018-03-28 14:56:00
【问题描述】:
我试图在我的应用程序中获取当前监视器大小的值。
我在使用 GNOME 的 ubuntu 16.04。
问题是我有上网本显示器和外接显示器,所以如果我尝试执行以下操作:
info_object = pygame.display.Info() # info_object.current_w / info_object.current_h
screen = pygame.display.set_mode((info_object.current_w, info_object.current_h))
我知道屏幕的宽度是上网本显示器 + 外接显示器,所以分辨率如下:
(3286, 1080)
所以我的另一个尝试是使用 pygame.display.list_modes() 获取有关监视器的信息,以获取一些显示分辨率设置,但我得到一个列表,例如:
[(3286, 1080), (1366, 768), (1360, 768), (1024, 768), (960, 720), (960, 600), (960, 540), (928, 696), (896, 672), (840, 525), (800, 600), (800, 512), (720, 450), (700, 525), (680, 384), (640, 512), (640, 480), (576, 432), (512, 384), (400, 300), (320, 240)]
但仍然不知道当前的“活动”监视器是什么。
如果我在上网本显示器中打开我的程序,我希望得到该显示器的分辨率,相反,如果我在外部显示器中打开它,我希望得到的分辨率不是一加二。
我怎样才能做到这一点?
【问题讨论】:
-
射击,对不起,我没有测试我的代码。请注意,如果它甚至可以与 pygame 一起使用(即带有 sdl1 的 pygame),我将尝试使用 xrandr、grep、sed 制作一些东西,以便为我自己的目的吐出屏幕分辨率。