12

プログラムの実行中に、構成したアイコン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()
4

3 に答える 3

9

私はついにそれを理解しました。

私が知る限り、タスクバーにそのアイコンを実際に設定する唯一の方法は、パッケージング中です。

たとえば、pyinstaller を使用すると、python pyinstaller.py --icon=icon.icoWhere icon はタスク バーに表示するアイコンです。

于 2012-05-03T19:43:17.047 に答える
5

これを見たいと思うかもしれません。基本的に、Windows がタスクバー アイコンを設定するとき、さまざまな巧妙なアルゴリズムを使用して、使用するアイコンを決定します。これは、アプリケーションのインスタンスが複数ある場合 (つまり、複数の Python ウィンドウ)、それらがグループ化されるためです。これは通常、ファイル拡張子 (または)に応じて、Python アプリケーションのアイコンがpython.exeまたはのアイコンに設定されていることを意味します。ただし、回避策があります。タスクバー アイコンは特定の実行可能ファイルによってではなく、によって設定されるため、次のモジュールを使用してアプリケーションのユーザー モデルを変更できます。pythonw.exe.py.pywApp User Modelsctypes

import ctypes
myappid = 'mycompany.myproduct.subproduct.version' # arbitrary string
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)

したがって、それは実際には、一般的にWindowsのことほどpygameのことではありません。

于 2017-04-10T17:01:45.603 に答える
-2

タスクバーアイコンを設定するには、set_captionを使用する必要があると思います。

pygame.display.set_caption("Title", get_image_file("icon.png"))

注:キャプションを設定しても、ウィンドウアイコンは設定されません。set_iconとset_captionの両方を呼び出して、両方を設定します。

于 2012-04-30T16:36:51.857 に答える