有人知道如何更改pygame图标吗? 我在pygame网站上找到了一个可以实现这一点的东西,但是当我尝试时,它只会使pygame窗口非常小。
首先将图标图像作为一个surface加载,然后使用pygame.display.set_icon(surface)
更改图标。
编辑:由于提问者不知道什么是surface
从http://www.pygame.org/docs/ref/surface.html的文档中:
"pygame Surface用于表示任何图像。 Surface具有固定的分辨率和像素格式。调用pygame.Surface()创建新的图像对象。"
例如,如果您使用了screen = pygame.display.set_mode
,那么screen
就是一个surface。
因此,在使用pygame.display.set_icon(surface)
之前,您必须首先将图像作为pygame.Surface导入,方法是使用a = pygame.image.load('image')
,其中a
是存储surface的变量,'image'
是指向该图像的目录。然后,您可以使用pygame.display.set_icon(surface)
将其设置为图标。您可以传递任何surface,但最好是32x32的。
更多信息请参见:http://www.pygame.org/docs/ref/display.html#pygame.display.set_icon
programIcon = pygame.image.load('icon.png')
pygame.display.set_icon(programIcon)
这将设置 Pygame 窗口的图标。
设置窗口图标时需要小心。请参考pygame.display.set_icon()
:
[...] 一些系统在窗口图标显示后不允许更改。可以在调用
pygame.display.set_mode()
之前调用此函数来创建图标。
在初始化窗口pygame.display.set_mode()
之前设置图标。例如:
icon = pygame.image.load('my_icon.png')
pygame.display.set_icon(icon)
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption(‘my window’)
如果图标未显示,请尝试使用更小的图标。[...] 您可以传递任何表面,但大多数系统希望围绕32x32大小的较小图像。
请确保资源(图像)路径和工作目录正确。
图像文件路径必须相对于当前工作目录。工作目录可能与Python文件的目录不同。
文件的名称和路径可以通过__file__
获取。当前工作目录可以通过os.getcwd()
获取,并且可以通过os.chdir(path)
更改。
import os
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
另一个解决方案是查找绝对路径。
如果图像相对于 Python 文件夹(甚至在同一文件夹中),则可以获取文件的目录并加入({{link1: os.path.join()}})图像文件名。例如:
import pygame
import os
# get the directory of this file
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
iconPath = os.path.join(sourceFileDir, 'my_icon.png')
icon = pygame.image.load(iconPath)
pygame.display.set_icon(icon)
确保在设置标题之前已经设置了显示和图标:
icon = pygame.image.load('icon.png')
pygame.display.set_icon(icon)
icon = 'your image path'
pygame.display.set_icon(icon)
pip install pygame
然后在您的文件夹中导入它 为了导入它,只需编写:
import pygame
ICON = 'images/icon.png'
pgzero会自动替换默认图标。