嗨,我试图制作一个画布来在上面创建图像,但是当我创建画布时,它有一个丑陋的白色背景。
test_canvas = Canvas(main_window,100,100, bd=0, highlightthickness=0)放置后,它有一个白色的背景。
是否有任何的删除背景,并使其融入(透明)?
,这里有一个图像来查看问题(我希望白色背景消失,并与其他背景混合在一起)
发布于 2021-11-29 05:01:21
只有窗口的解决方案才会使用pywin32模块,并且可以在以下几个方面安装:
pip安装pywin32
使用pywin32,您可以修改窗口外型并将画布设置为分层窗口。分层窗口可以有一个透明的彩色键,其操作方式如下所示:
import tkinter as tk
import win32gui
import win32con
import win32api
root = tk.Tk()
root.configure(bg='yellow')
canvas = tk.Canvas(root,bg='#000000')#full black
hwnd = canvas.winfo_id()
colorkey = win32api.RGB(0,0,0) #full black in COLORREF structure
wnd_exstyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
new_exstyle = wnd_exstyle | win32con.WS_EX_LAYERED
win32gui.SetWindowLong(hwnd,win32con.GWL_EXSTYLE,new_exstyle)
win32gui.SetLayeredWindowAttributes(hwnd,colorkey,255,win32con.LWA_COLORKEY)
canvas.create_rectangle(50,50,100,100,fill='blue')
canvas.pack()注意:在定义了透明的COLORKEY之后,画布中的任何颜色都是透明的!

https://stackoverflow.com/questions/70149724
复制相似问题