Я пишу программу на Python с использованием библиотеки tkinter, чтобы я мог отображать 4 изображения по указанному пути, однако изображения загружаются неправильно. Существует большое пространство, в которое должны были загружаться изображения, однако на самом деле изображения там нет (см. Прикрепленные снимки экрана). Я использую ImageTk
и Image
из импорта PIL
, так как я прочитал, как это сделать в другом посте, однако у меня это не сработало.
Вот некоторый связанный код: (справочная информация: программа для арабского языка c букв LOL)
# imports
from tkinter import *
from PIL import ImageTk,Image
import random
# variables
letters = ["yaa", "ghayn", "waaw", "ayn", "haa", "khaa", "miim", "7aa", "kaaf",
"jiim", "qaaf", "baa", "faa", "alif", "nuun", "siin", "lam", "zay",
"thaa-1", "raa", "taa-1", "thaal", "daad", "daal", "saad", "thaa-2",
"shiin", "taa-2"] # a list of letters to be used later in the program
# GUI class
class Gui:
def __init__(self):
self.root = Tk(); self.root.title("Letter Learning")
self.setup() # calls the setup function to load all the labels etc
def setup(self):
# top
Label(self.root, text="Generate a new letter:").grid(row=0,column=0)
Button(self.root, text="click me", command=self.pickLetter).grid(row=0,column=1)
def pickLetter(self):
label = {}
letter = random.choice(letters)
path = [f"letters\\{letter}-{x}.jpg" for x in range(4)]
print(path)
for x in range(4):
label[f"image{x}"] = ImageTk.PhotoImage(Image.open(path[x])) # reference to the image
Label(self.root, image=label[f"image{x}"]).grid(row=2, column=x) # putting the image in
Как вы можете видеть, я использовал для l oop для перебора моих файлов (они сохраняются как <letter-0>
, <letter>-1
et c) и поместите ярлык в окно. Я сохранил ссылку на изображение в словаре, как говорится в другом посте, чтобы сохранить ссылку на изображения, которые вы используете, однако ничего не отображается.
Вот до / после загрузки изображений: