首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无白色背景的Tkinter画布(使其透明)

无白色背景的Tkinter画布(使其透明)
EN

Stack Overflow用户
提问于 2021-11-29 04:23:15
回答 1查看 502关注 0票数 1

嗨,我试图制作一个画布来在上面创建图像,但是当我创建画布时,它有一个丑陋的白色背景。

代码语言:javascript
复制
test_canvas = Canvas(main_window,100,100, bd=0, highlightthickness=0)

放置后,它有一个白色的背景。

是否有任何的删除背景,并使其融入(透明)?

,这里有一个图像来查看问题(我希望白色背景消失,并与其他背景混合在一起)

https://imgur.com/a/FySWyyn

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-29 05:01:21

只有窗口的解决方案才会使用pywin32模块,并且可以在以下几个方面安装:

pip安装pywin32

使用pywin32,您可以修改窗口外型并将画布设置为分层窗口分层窗口可以有一个透明的彩色键,其操作方式如下所示:

代码语言:javascript
复制
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之后,画布中的任何颜色都是透明的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70149724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档