【发布时间】:2019-04-22 09:20:27
【问题描述】:
TkVersion = 8.6,Python 版本 3.7.3
我正在尝试使用 PNG 图像在 python 中使用 tkinter 创建一个按钮。图像的透明角是否透明取决于我使用的小部件。看来canvas.create_image 是唯一保留透明度的小部件。
首先,我使用 create_image(0,0, image=button) 在画布上添加了图像,效果很好 - 圆角是透明的。
但是当我尝试使用Button() 和create_window() 小部件将其实现为实际按钮时,角落被白色填充。
button = ImageTk.PhotoImage(file="button.png")
canvas = tk.Canvas(width=200, heigh=200, borderwidth=0, highlightthickness=0)
canvas.grid()
canvas.create_rectangle(0,0,199,199, fill="blue")
canvas.create_image(0,0, image=button, anchor="nw")
[]
button = ImageTk.PhotoImage(file="button.png")
canvas = tk.Canvas(width=200, heigh=200, borderwidth=0, highlightthickness=0)
canvas.grid()
canvas.create_rectangle(0,0,199,199, fill="blue")
buttonWidget = tk.Button(root, image=button)
canvas.create_window(0,0, window=buttonWidget, anchor="nw")
如何使 PNG 按钮的角透明?
这也是按钮图像:
【问题讨论】:
-
使用图像而不是
Button作为您的按钮。将"<Button-1>"事件绑定到图像。 -
你能说得更具体点吗?我重命名了按钮小部件以使其更清晰。
标签: python tkinter transparency tkinter-canvas