在运行程序时,我使用pygame.display.set_icon(icon)
配置的图标仅显示在窗口中。在任务栏中,默认的python图标保持不变。
有没有办法改变它?
来源:
import pygame
from pygame.locals import *
import sys, os
import time
pygame.init()
# Load Images
try:
bg = os.getcwd() + '\\images\\background.png'
background = pygame.image.load(bg).convert()
except:
print 'Error: Could not find background.png'
try:
logo = os.getcwd() + '\\images\\logo.png'
c_logo = pygame.image.load(logo).convert()
except:
print 'Error: Could not find logo.png'
try:
about_dialog_infile = os.getcwd() + '\\images\\about_dialog[alpha].png'
about_dialog = pygame.image.load(about_dialog_infile).convert_alpha()
except:
pass
i_icon = os.getcwd() + '\\images\\icon.png'
icon = pygame.image.load(i_icon)
pygame.display.set_icon(icon)
pygame.display.set_caption("Test program")
screenSize =(640,480)
screen = pygame.display.set_mode(screenSize,0,32)
pygame.display.set_caption('My Test Program')
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
# sys.exit()
if event.type == MOUSEBUTTONDOWN:
check_click(about, event.pos)
screen.blit(background, (0,0))
pygame.display.update()
答案 0 :(得分:7)
我终于明白了。
据我所知,在任务栏中实际设置该图标的唯一方法是在打包期间。
以pyinstaller为例,您可以调用python pyinstaller.py --icon=icon.ico
其中icon是您希望在任务栏中显示的图标。
答案 1 :(得分:3)
您可能希望看到this。本质上,当Windows设置任务栏图标时,它使用各种聪明的算法来决定要使用的图标。这样做的原因是,如果你有一个应用程序的多个实例(即多个python窗口),它们将被分组。这通常意味着python应用程序的图标设置为python.exe
或pythonw.exe
的图标,具体取决于您的文件扩展名(.py
或.pyw
)。但是,有一种解决方法。由于任务栏图标由App User Models
而不是特定可执行文件设置,因此可以使用ctypes
模块更改应用程序的用户模型:
import ctypes
myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
所以它通常不像一个窗口的东西那么多的游戏。
答案 2 :(得分:-1)
我认为要设置任务栏图标,您必须使用set_caption。
pygame.display.set_caption("Title", get_image_file("icon.png"))
注意:设置标题不会设置窗口图标。同时调用set_icon和set_caption来设置它们。