我有一个带有按钮图像的Button
但是当它在我的窗口中时,按钮的背景与窗口的背景发生冲突。它是一个.png图像,但tkinter
似乎想通过添加灰色空间将图像保持为四边形。有没有办法让按钮的空白区域变得透明,以便您只剩下按钮图像?
我在Windows 8上使用Python 3.4.2。
答案 0 :(得分:1)
该解决方案有点棘手,因为您需要使用 PIL 四处走动但有效。经过2小时的战斗才解决了。
您需要使用 PIL 作为图像加载器,然后使用根(主 tk.Tk() 类对象)将图像传递给 tkinter BUT - 否则图像在进入时将不可见垃圾收集器,只剩下图像的空间。简化代码如下:
import tkinter as tk
from PIL import Image, ImageTk
root = tk.Tk()
button = tk.Button(self.left_menu)
button_load = Image.open('assets/search.png')
root.button_img = ImageTk.PhotoImage(button_load)
button.config(image=root.button_img)
button_1.pack(side='top')
答案 1 :(得分:0)
如果您使用带有import PIL
python的.png,则支持透明度。
但是,在tkinter
.Button
窗口小部件中,不支持透明度。
所以你将拥有透明图像在纯色背景之上。
如果您是Windows用户,最好的办法就是这个解决方案: