如何让PyGame窗口适配Ubuntu系统的屏幕显示缩放比例?
Ubuntu 200%屏幕缩放时PyGame适配问题的简便解决方法
利用PyGame内置的SCALED标志(推荐)
如果你使用的是PyGame 2.0及以上版本,创建窗口时添加SCALED标志,PyGame会自动识别系统缩放比例并适配窗口及内容:import pygame pygame.init() # 800x600为原窗口尺寸,SCALED会按系统缩放比例自动放大 screen = pygame.display.set_mode((800, 600), pygame.SCALED)设置环境变量强制PyGame尊重系统DPI
可以在代码开头添加环境变量设置,或者在终端运行脚本时指定:
代码内设置:import os os.environ['SDL_DPI_AWARE'] = '1' import pygame pygame.init() screen = pygame.display.set_mode((800, 600))终端运行时设置:
SDL_DPI_AWARE=1 python your_game.py手动计算并应用缩放比例
若上述方法无效,可手动获取系统缩放比例,再对窗口和绘制内容进行缩放:import pygame import gi gi.require_version('Gdk', '3.0') from gi.repository import Gdk pygame.init() # 获取系统缩放因子 display = Gdk.Display.get_default() monitor = display.get_primary_monitor() scale_factor = monitor.get_scale_factor() # 缩放窗口尺寸 window_size = (800 * scale_factor, 600 * scale_factor) screen = pygame.display.set_mode(window_size) # 绘制时缩放内容(以图片为例) image = pygame.image.load('test.png') scaled_image = pygame.transform.scale(image, (image.get_width()*scale_factor, image.get_height()*scale_factor))
内容的提问来源于stack exchange,提问作者Omroth
相关产品推荐
相关产品推荐

