【问题标题】:How come I can't give my pygame window a name or an icon? [duplicate]为什么我不能给我的 pygame 窗口命名或图标? [复制]
【发布时间】:2021-05-16 01:40:20
【问题描述】:

下面是我运行代码的屏幕截图

这是我的实际代码:

import pygame


pygame.init()

#创建屏幕

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

标题和图标

pygame.display.set_caption("Space Invaders")
icon = pygame.image.load('ufo-flying.png')
pygame.display.set_icon(icon)

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

我不明白为什么它不起作用。我的代码看起来正确,我的图标在我的目录中,但什么都没有出现。是不是我忘记下载了?我的代码错了吗?

这是我正在学习的教程:https://www.youtube.com/watch?v=_HF852IONl8

最后一件可能很重要的事情是,即使我运行我的窗口而不尝试更改标题和图标,它也是空白的。这让我相信有一个包我还没有下载,但我真的不知道。

【问题讨论】:

  • 欢迎来到 Stack Overflow。您可能需要编辑问题,因为未包含屏幕截图。
  • 我很好奇您使用的是什么操作系统和 pygame 版本。尝试在 set_mode 之前设置图标,文档建议这可能是必要的。
  • 嗯。它似乎不起作用。
  • 我的操作系统是 Pycharm for linux。我更新了我的 pygame,但我不知道它是什么版本。
  • @OliverRovers 这听起来像是 Wayland 和 pygame 之间的问题。这是很多东西都在采用的新的 linux 显示标准。因此,如果您有最新的发行版,这可能就是问题所在。

标签: python pygame icons


【解决方案1】:

首先将此图像“ufo-flying.png”的像素大小更改为 32 x 32。为此,请使用 PC 上的任何照片编辑器应用程序打开此图像。选择“调整大小”选项。现在将宽度和高度更改为 32 x 32。您可以使用此站点更改此图像的像素。 https://www.reduceimages.com/ 现在将此图像保存到包含此 python 代码文件(main.py)的文件夹中。如果您使用的是 Pycharm,那么您可以在 PC 上的“PycharmProjects”文件夹中找到此文件夹。完成此操作后,运行您的代码,它将正常工作。干杯!

【讨论】:

    【解决方案2】:

    pygame.display.set_icon():

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

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

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

    另外,图标的大小是有限制的:

    [...] 您可以通过任何表面,但大多数系统需要 32x32 左右的较小图像。

    如果图标未显示,请尝试使用较小的图标。

    【讨论】:

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