Frage

Was ist ein guter Weg, ein Symbol im Speicher in Python zu generieren? Im Moment bin ich gezwungen pygame zu verwenden, um das Symbol zu zeichnen, dann speichere ich es auf der Festplatte als ICO-Datei, und ich es dann laden von der Festplatte als ICO Ressource ...

So etwas wie folgt aus:

    if os.path.isfile(self.icon):
        icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
        hicon = win32gui.LoadImage(hinst,
                                   self.icon,
                                   win32con.IMAGE_ICON,
                                   0,
                                   0,
                                   icon_flags)

... wo self.icon der Dateiname des Symbols I erstellt.

Gibt es eine Möglichkeit, dies in Erinnerung zu tun? EDIT: Alles, was ich tun möchte, ist ein Symbol mit einer 2-stellige Nummer auf sie (Wetter-Taskleiste angezeigt Stil erstellen

.
War es hilfreich?

Lösung

Sie können mit WxPython für diese.

from wx import EmptyIcon
icon = EmptyIcon()
icon.CopyFromBitmap(your_wxBitmap)

Die wxBitmap können im Speicher mit wxMemoryDC , schauen hier für Operationen, die Sie auf einem DC tun können.

Dieses Symbol kann dann auf eine wxFrame angewandt werden (ein Fenster) oder einen wxTaskBarIcon mit:

frame.SetIcon(icon)

Andere Tipps

Sie können sich wahrscheinlich ein Objekt erstellen, das den Python-Datei-Objekt-Schnittstelle nachahmt.

http://docs.python.org/library/stdtypes .html # bltin-Datei-Objekte

Das ist für mich arbeitet und nicht wx erforderlich.

from ctypes import *
from ctypes.wintypes import *

CreateIconFromResourceEx = windll.user32.CreateIconFromResourceEx
size_x, size_y = 32, 32
LR_DEFAULTCOLOR = 0

with open("my32x32.png", "rb") as f:
    png = f.read()
hicon = CreateIconFromResourceEx(png, len(png), 1, 0x30000, size_x, size_y, LR_DEFAULTCOLOR)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top