在 for 循环中使用背景(使用路径)制作更多 windows

Making more windows with backgrounds (using the paths) in a for loop

我是 python 的新手,我正在尝试此代码:

import random
from random import choice
import tkinter
from tkinter import messagebox
from tkinter import *
from tkinter.filedialog import askopenfilename
import sys
from PIL import ImageTk, Image
from tkinter import filedialog
import os

num_npcs = 2
num_img_tot = 100
npc_window = {}
canvas = {}
background_label = {}

for i in range(0, num_npcs,1):
    num_img = round(random.uniform(0.5, num_img_tot+0.5))
    npc_window["npc_window{0}".format(i)] = Tk()
    canvas["canvas{0}".format(i)] = Canvas(npc_window["npc_window{0}".format(i)], bg="blue", height=250, width=300)
    filename["canvas{0}".format(i)] = PhotoImage(file=base_folder + 'biome\'+str(char)+'\'+str(int) + '\'+str(num_img)+'.png')
    background_label["background_label{0}".format(i)] = Label(npc_window["npc_window{0}".format(i)], image=filename["canvas{0}".format(i)])
    background_label["background_label{0}".format(i)].place(x=0, y=0, relwidth=1, relheight=1)
    canvas["canvas{0}".format(i)].pack()

但我可能有点搞砸了...我不习惯使用 GUI 之类的东西,实际上我正在试验。 顺便说一下,错误是:

_tkinter.TclError: image "pyimage2" doesn't exist

我正在尝试制作一个打开 X(随机)图像的程序,这就是我尝试 Tk() 的原因。 我也在 Windows 10 机器上使用 Pycharm。

pyimage2 错误可能是由于文件路径不正确造成的。改进 folfer 路径的建议:

base_folder = "base_folder"
alignment_list = [0.1, 0.2, 0.3]
integer_list = [1,2,3]
images = []

tk = Tk()
for alignment, integer in zip(alignment_list, integer_list):
    image_name = "img" + str(integer) + ".png"
    file_name = os.path.join(base_folder, "biome", str(alignment), str(integer), image_name)
    print(file_name)
    img = PhotoImage(file=file_name)
    images.append(img)

给出

base_folder/biome/0.1/1/img1.png
base_folder/biome/0.2/2/img2.png
base_folder/biome/0.3/3/img3.png