【问题标题】:Tkinter Background not showing transparentTkinter 背景不显示透明
【发布时间】:2026-01-11 06:10:02
【问题描述】:

嘿,我是 python 的新手,在我的代码中,每当我运行代码时,都会播放一个动画 gif。 gif图像在adobe等中打开时实际上是透明的,但问题是当我运行代码时。gif中包含的灰色框架。我想删除灰色,以便唯一可以看到的是我唯一的动画 gif

这是我的代码:

# mimic an animated GIF displaying a series of GIFs
# an animated GIF was used to create the series of GIFs 
# with a common GIF animator utility

import time
from Tkinter import *

root = Tk()

imagelist = ["dog001.gif","dog002.gif","dog003.gif"]

# extract width and height info
photo = PhotoImage(file=imagelist[0])
width = photo.width()
height = photo.height()
canvas = Canvas(width=width, height=height)
canvas.create_line(0,240,640,240, fill='blue')
canvas.pack()

# create a list of image objects
giflist = []
for imagefile in imagelist:
    photo = PhotoImage(file=imagefile)
    giflist.append(photo)

# loop through the gif image objects for a while
for k in range(0, 10):
    for gif in giflist:
        canvas.delete(ALL)
        canvas.create_image(width/2.0, height/2.0, image=gif)
        canvas.update()
        time.sleep(0.1)

root.mainloop()[![enter image description here][1]][1]

dog001.gif

dog002.gif

dog003.gif

【问题讨论】:

    标签: python-2.7 tkinter tkinter-canvas


    【解决方案1】:

    here 所述,使 Tkinter 窗口透明是可能的,但取决于您的操作系统。

    如果您使用的是 Windows,只需在创建 root 后添加以下行:

    root = Tk()
    # Hide the root window drag bar and close button
    root.overrideredirect(True)
    # Make the root window always on top
    root.wm_attributes("-topmost", True)
    # Define a transparent color
    root.wm_attributes("-transparentcolor", '#eeefff')
    

    然后将画布的背景色设置为上面定义的透明色:

    canvas = Canvas(width=width, height=height, bg='#eeefff', highlightthickness=0)
    

    【讨论】: