我想在背景中和 2 个标签上方放置图像,但它们带有彩色背景并覆盖图像。 在这段代码中,我插入了一个图像并覆盖了 2 个标签。我找不到使 2 个标签的背景透明的方法。 欢迎任何有关如何改进整个代码的建议。
from tkinter import *
import tkinter as tk
from PIL import Image, ImageTk
def resize_image(event):
new_width = event.width
new_height = event.height
image = copy_of_image.resize((new_width, new_height))
photo = ImageTk.PhotoImage(image)
label.config(image=photo)
label.image = photo # avoid garbage collection
root = tk.Tk()
root.title("Alma")
root.geometry('600x600')
frame = Frame(root, relief='raised', borderwidth=2)
frame.pack(fill=BOTH, expand=YES)
frame.pack_propagate(False)
copy_of_image = Image.open("nvidia.jpg")
photo = ImageTk.PhotoImage(copy_of_image)
label = Label(frame, image=photo)
label.place(x=0, y=0, relwidth=1, relheight=1)
label.bind('<Configure>', resize_image)
#label(Tk,image=copy_of_image,bg='grey').pack()
#Tk.wm_attributes("-transparentcolor", 'grey')
center_frame = Frame(frame, relief='raised', borderwidth=2)
center_frame.place(relx=0.5, rely=0.5, anchor=CENTER)
def countdown(count):
# change text in label
global labela
labela["text"] = str(count)
if count > 0:
# call countdown again after 2000ms (1s)
root.after(1000, countdown, count-1)
labela.pack(fill=tk.BOTH, side=tk.BOTTOM, expand=True)
labelb = tk.Label(root)
labelb = tk.Label(
center_frame,
text="Hello, Tkinter",
fg="green",
width=16,
height=6,
font='Calibri 50'
)
labela = tk.Label(
center_frame,
fg="green",
width=16,
height=6,
font='Calibri 50')
countdown(3)
labelb.pack(fill=tk.BOTH, side=tk.TOP, expand=True)
root.after(4000, root.destroy)
root.mainloop()