Python tkinter GUI

动态改变背景

tkinter不原生支持 .jpg .png格式的图片,加载这些图片的时候需要PIL的支持

# coding=utf-8
from tkinter import *
from PIL import Image, ImageTk


def change_img():
    print('changing...')
    im = Image.open("0.jpg")
    img = ImageTk.PhotoImage(im)
    print('3',ImageTk.PhotoImage)
    return img


def change():
    print('in')
    # img2 = change_img()
    label.configure(image=img2)


top=Tk()
print('1',ImageTk.PhotoImage)
im1=Image.open("0.jpg")
img1=ImageTk.PhotoImage(im1)
im2=Image.open("1.jpg")
img2=ImageTk.PhotoImage(im2)
print('2',ImageTk.PhotoImage)
label=Label(top, image=img1)
label.pack()
button=Button(top, text="点击选择你的图片", command=change)
button.pack()
top.mainloop()


在定义top=Tk()之前,你直接引用ImageTk.PhotoImage 是会报不存在错误的。
也就是说这个方法是top=Tk()动态加入的。
所以tkinter就有一种所谓的“静态”特性。
所有的.jpg .png图片都要在top=Tk()的同级 定义好。
解释
如果新加

你可能感兴趣的:(Python tkinter GUI)