使用 TkImages 创建引用列表的枚举
Create Enum referencing a list with TkImages
我在一个文件夹中有几张图片,每一张都调整了大小并变成了 Tkinter 的图片。我想在其他 python 脚本中将这些图像用作 enum
.
这是我创建图像的方式:
import os
from PIL import Image, ImageTk
from enum import Enum
#Resize All Images and turn them into TkImages
def ResizeImages():
PieceImages = []
for images in os.listdir('Resources'):
cImage = Image.open('Resources/' + images)
cImage = cImage.resize((80, 80), Image.ANTIALIAS)
PieceImages.append(ImageTk.PhotoImage(cImage))
return PieceImages
#Called from outside to create PNGS list AFTER Tkinter.Tk() was called
def InitializeImages():
global PNGS
PNGS = ResizeImages()
#This is the part where I'm lost
class Black(Enum):
global PNGS
Queen = PNGS[3]
King = PNGS[4]
Tower = PNGS[5]
我想用这些图片创建一个 Tkinter Button
:
#PieceImages is the .py file above
import PieceImages import Black
form tkinter import *
root = Tk()
root.geometry('800x800')
someButton = tk.Button(root, image=Black.Tower).place(x=100, y=100)
我的问题是:
甚至可以创建这种类型的 enum
吗?如果可以,如何创建?
我建议远离全局变量;您可以直接将参数传递给 class:
class Black():
def __init__(self, pngs):
self.name1 = pngs[0]
self.name2 = pngs[1]
通过传递 png 来实例化:
black = Black(pngs)
然后 black.name1
、black.name2
等将是您想要的图像。
我在一个文件夹中有几张图片,每一张都调整了大小并变成了 Tkinter 的图片。我想在其他 python 脚本中将这些图像用作 enum
.
这是我创建图像的方式:
import os
from PIL import Image, ImageTk
from enum import Enum
#Resize All Images and turn them into TkImages
def ResizeImages():
PieceImages = []
for images in os.listdir('Resources'):
cImage = Image.open('Resources/' + images)
cImage = cImage.resize((80, 80), Image.ANTIALIAS)
PieceImages.append(ImageTk.PhotoImage(cImage))
return PieceImages
#Called from outside to create PNGS list AFTER Tkinter.Tk() was called
def InitializeImages():
global PNGS
PNGS = ResizeImages()
#This is the part where I'm lost
class Black(Enum):
global PNGS
Queen = PNGS[3]
King = PNGS[4]
Tower = PNGS[5]
我想用这些图片创建一个 Tkinter Button
:
#PieceImages is the .py file above
import PieceImages import Black
form tkinter import *
root = Tk()
root.geometry('800x800')
someButton = tk.Button(root, image=Black.Tower).place(x=100, y=100)
我的问题是:
甚至可以创建这种类型的 enum
吗?如果可以,如何创建?
我建议远离全局变量;您可以直接将参数传递给 class:
class Black():
def __init__(self, pngs):
self.name1 = pngs[0]
self.name2 = pngs[1]
通过传递 png 来实例化:
black = Black(pngs)
然后 black.name1
、black.name2
等将是您想要的图像。