【发布时间】:2014-07-29 22:21:29
【问题描述】:
我已经使用该站点有一段时间了,它对许多 linux 和 python 都非常有帮助,所以谢谢 :) 我已经找到了如何在应用程序窗口上放置背景。我制作了一个按钮,它通向一个功能,该功能与我最初设置背景的功能基本相同。我尝试了几种不同的方法,谷歌搜索了这个。我唯一能做到的就是要么完全空白屏幕,要么保留按钮但仍然空白背景。
这是我目前正在处理的代码
import tkinter
from tkinter import *
from PIL import Image, ImageTk, ImageFilter
window = tkinter.Tk()
myImage2 = Image.open("cubecap.png")
myImage1 = ImageTk.PhotoImage(myImage2)
bglabel = tkinter.Label(window, image=myImage1)
bglabel.place(x=0, y=0, relwidth=1, relheight=1)
btn = tkinter.Button(window, font=('Monospace', 16), text="Click it!")
btn.pack(side=BOTTOM)
def changeBackground():
myNewImage2 = Image.open("cubecap2.png")
myNewImage1 = ImageTk.PhotoImage(myNewImage2)
bglabel.configure(image=myNewImage1)
btn.configure(text="!it Click")
btn.configure(command=changeBackground)
window.title("Background Changing Buttons")
window.geometry('600x480')
window.wm_iconbitmap('@matrix.xbm')
window.mainloop()
我也尝试过重新放置标签,但它仍然只是使屏幕空白。我对python很陌生,只是一个爱好程序员。
编辑: 我通过在 changeBackground 函数之外设置其他图像变量来解决这个问题
【问题讨论】:
-
原因是因为一旦函数完成,图像就会被垃圾收集,修复它的其他方法是让你的图像全局化
标签: python image python-3.x tkinter