如何将标签背景更改为同一图片
how to change labels background as same picture
一个月前我开始学习Python。对不起,如果我的问题不好,这是我在这里的第一个问题。
我用tkinter
做了一个小游戏,但是遇到了问题
我做了一个大标签,上面有一张图片作为背景。每当我制作更多带有文字的标签时,文字都会有灰色背景。但是我想要的是每个文本都有我已经放置的图片作为背景。
这里有一些代码来解释它:
from tkinter import*
x=Tk()
x.geometry("1000x1000")
z=PhotoImage(file="D:\Blue.gif")
v=Label(x,text="hi",font=100,fg="red",compound=CENTER,image=z,width=1000,height=1000)
v.place(x=0,y=0)
v1=Label(x,text="OO",font=100,fg="red")
v1.place(x=300,y=400)
x.mainloop()
v
标签在我使用 compound 时效果很好。它显示带有文本 "hi" 的图片。
但是我希望 v1
标签具有与 v
相同的背景,而不是灰色背景。
所有小部件都有背景 - 它们不可能是透明的。
您可以使用 tk.Canvas
在图像上放置无背景的文本或在文本上放置透明图像。
effbot.org: Canvas, PhotoImage
#!/usr/bin/env python3
import tkinter as tk
from PIL import Image, ImageTk
# --- constants ---
WIDTH = 800
HEIGHT = 600
# --- main ---
root = tk.Tk()
c = tk.Canvas(root, width=WIDTH, height=HEIGHT)
c.pack()
# only GIF and PGM/PPM
#photo = tk.PhotoImage(file='test.gif')
# other formats
image = Image.open('test_transparent.png')
photo = ImageTk.PhotoImage(image)
# use in functions - solution for "garbage collector" problem
c.image = photo
i = c.create_image((WIDTH//2, HEIGHT//2), image=photo)
t = c.create_text((WIDTH//2, HEIGHT//2), text='Hello World')
root.mainloop()
更改顺序,您会在文字上看到图片
t = c.create_text((WIDTH//2, HEIGHT//2), text='Hello World')
i = c.create_image((WIDTH//2, HEIGHT//2), image=photo)
test_transparent.png(透明背景图片)
一个月前我开始学习Python。对不起,如果我的问题不好,这是我在这里的第一个问题。
我用tkinter
做了一个小游戏,但是遇到了问题
我做了一个大标签,上面有一张图片作为背景。每当我制作更多带有文字的标签时,文字都会有灰色背景。但是我想要的是每个文本都有我已经放置的图片作为背景。
这里有一些代码来解释它:
from tkinter import*
x=Tk()
x.geometry("1000x1000")
z=PhotoImage(file="D:\Blue.gif")
v=Label(x,text="hi",font=100,fg="red",compound=CENTER,image=z,width=1000,height=1000)
v.place(x=0,y=0)
v1=Label(x,text="OO",font=100,fg="red")
v1.place(x=300,y=400)
x.mainloop()
v
标签在我使用 compound 时效果很好。它显示带有文本 "hi" 的图片。
但是我希望 v1
标签具有与 v
相同的背景,而不是灰色背景。
所有小部件都有背景 - 它们不可能是透明的。
您可以使用 tk.Canvas
在图像上放置无背景的文本或在文本上放置透明图像。
effbot.org: Canvas, PhotoImage
#!/usr/bin/env python3
import tkinter as tk
from PIL import Image, ImageTk
# --- constants ---
WIDTH = 800
HEIGHT = 600
# --- main ---
root = tk.Tk()
c = tk.Canvas(root, width=WIDTH, height=HEIGHT)
c.pack()
# only GIF and PGM/PPM
#photo = tk.PhotoImage(file='test.gif')
# other formats
image = Image.open('test_transparent.png')
photo = ImageTk.PhotoImage(image)
# use in functions - solution for "garbage collector" problem
c.image = photo
i = c.create_image((WIDTH//2, HEIGHT//2), image=photo)
t = c.create_text((WIDTH//2, HEIGHT//2), text='Hello World')
root.mainloop()
更改顺序,您会在文字上看到图片
t = c.create_text((WIDTH//2, HEIGHT//2), text='Hello World')
i = c.create_image((WIDTH//2, HEIGHT//2), image=photo)
test_transparent.png(透明背景图片)