将“输入字段”设置为具有透明背景

时间:2014-08-30 15:10:34

标签: python image user-interface tkinter transparency

我遇到了问题。 我想在图像前面实现一个Inputfield(Text())(ImageTk.Photoimage()) 但是Inputfield的白色背景覆盖了图像。所以我的问题是,如何将Text()的背景设​​置为完全透明?

from Tkinter import *
from PIL import ImageTk, Image

path = 'C:/Users/David/Pictures/5.png'

root = Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
Text(root).pack()
root.mainloop()

2 个答案:

答案 0 :(得分:0)

在父窗口的整个宽度上创建一个文本小部件(并保留它)

Text(root).pack( side   = "BOTTOM", fill ="X", expand = 1 )

Text(root).grid( sticky = W+S+E )

使文本小部件具有透明背景

参考。 >>> https://stackoverflow.com/a/18479446/3666197

答案 1 :(得分:-1)

制作透明背景: 如果将图像打包到画布小部件中,则可以使用

在其顶部发布文本
canvas.create_text()

可以在此处找到canvas小部件的一个很好的参考: http://effbot.org/tkinterbook/canvas.htm

控制小部件自身打包的宽度 如果你正在使用pack,你可以使用:

Text.pack(fill="x")

或:

Text.pack(fill="x", expand=True) 
# this one would also make it expand if you resize the window

或者如果你使用grid:

Text.grid(sticky="nesw")

并在调整窗口大小时将其展开:

parent.grid_columnconfigure(columnnumber, weight=1)

如果您使用网格,则可以通过更改该行/列的权重来更改窗口小部件展开的相对速率

詹姆斯