2016-11-07 2 views
1

私は1ヶ月前に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ラベルがいる限り、私はそれを有する化合物を使用するように非常に適しています。それは、その上にテキスト「こんにちは」がある写真を表示します。 しかし、私はv1ラベルが灰色の背景の代わりにvと同じ背景を持つようにします。

+0

すべてのウィジェットには背景があります。 [Canvas](http://effbot.org/tkinterbook/canvas.htm)を使用して画像とテキストを配置することができます。 – furas

答えて

0

すべてのウィジェットには背景があります。透明にすることはできません。

tk.Canvasを使用すると、テキストを背景に置かずテキストを透明にすることができます。

effbot.org:CanvasPhotoImage

#!/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(透明な背景を持つ画像)

enter image description here

上の画像を取得します
関連する問題