【问题标题】:Why can't I change the python window icon? [duplicate]为什么我不能更改 python 窗口图标? [复制]
【发布时间】:2021-01-20 12:25:32
【问题描述】:

我想用代码更改pygame窗口图标:

import pygame
pygame.init()

screen = pygame.display.set_mode((800, 600))

pygame.display.set_caption("Snake Game")
icon = pygame.image.load('snake icon.png')
pygame.display.set_icon(icon)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

当我使用该代码时它不起作用, 就像窗户自己关闭一样, 但是当我将代码更改为:

import pygame
pygame.init()

screen = pygame.display.set_mode((800, 600))

pygame.display.set_caption("Snake Game")

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

它可以工作,但它仍然有默认的 pygame 图标,我想更改 pygame 图标, 谁能告诉我代码有什么问题?

【问题讨论】:

  • 你能在控制台中分享异常吗?
  • 图标文件名中可能有空格问题,将文件重命名为snake-icon.png 并执行pygame.image.load('snake-icon.png') 后是否有效?

标签: python pygame


【解决方案1】:

确保资源(图片)路径和工作目录正确。

图像文件路径必须相对于当前工作目录。工作目录可能与python文件所在目录不同。

文件名和路径可以通过__file__获取。当前工作目录可以通过os.getcwd()获取,可以通过os.chdir(path)更改。

import os

sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)

更多见pygame.display.set_icon():

[...] 某些系统不允许窗口图标在显示后更改。这个函数可以在pygame.display.set_mode()之前调用,在设置显示模式之前创建图标。

设置screen = pygame.display.set_mode((800, 600))前面的图标:

icon = pygame.image.load('snake icon.png')
pygame.display.set_icon(icon)
screen = pygame.display.set_mode((800, 600))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多