无法正确执行函数

我对下面的 tkinter 脚本有一个奇怪的问题。如果执行了注释外的行,则它按预期显示图像。当我调用该函数时,它不会。主窗口我打开了,没有其他事情发生。不过,“函数调用”正在命令行管理程序中打印。我在这里是否遗漏了有关 tkinter 和/或功能的基本内容?我发现了一些关于IDLE的奇怪行为的报告,我也正在使用这些报告,这可能是原因吗?


昨天我遇到了一些问题,因为我 tkinter.py 调用文件,与模块相同,但位于不同的文件夹中。像更多的人一样,这导致了使用 IDLE 打开脚本时出现问题。我用下面的代码写了一个新文件,问题仍然存在。


from tkinter import *

import tkinter as tk

from PIL import Image, ImageTk

from pathlib import Path


window = Tk()


window.title('xy')

window.geometry('600x400')


path = Path("C:/Python/png/")


def function_a():

    print('function called')

    img = Image.open(str(path)+'\\'+'pic'+'.png')

    img = img.resize((300,200), Image.ANTIALIAS)

    img = ImageTk.PhotoImage(img)

    background_label = tk.Label(window, image=img)

    background_label.pack()


function_a()


##img = Image.open(str(path)+'\\'+'pic'+'.png')

##img = img.resize((300,200), Image.ANTIALIAS)

##img = ImageTk.PhotoImage(img)

##background_label = tk.Label(window, image=img)

##background_label.pack()


window.mainloop


largeQ
浏览 77回答 1
1回答

慕村9548890

照片会被垃圾回收删除,因为它是一个局部变量。若要修复函数末尾的此添加,这将阻止垃圾回收删除图像。imgbackground_label.img = img
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python