You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:58:12