如何在没有透明背景的情况下显示tkinter图像

问题描述 投票:0回答:1

显示图像时遇到问题(PIL/tkinter)。 图像显示,但背景透明。

import tkinter as tk
from PIL import Image, ImageTk

path = "zzz.png"

root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")

root.mainloop()

我希望背景不透明。

我注意到这只是 gnome3 桌面中的一个问题;程序从 gnome 终端启动。

另一个更新。 仅在使用 xrdp 远程运行桌面时出现问题。 以下链接显示了类似的问题:
https://github.com/neutrinolabs/xrdp/issues/1906但是;我无法让 xrdb 在 24 位颜色深度模式下工作。

xrdp 桌面上显示的程序输出的

屏幕截图。 程序中可能使用的图像

python tkinter python-imaging-library gnome-3 xrdp
1个回答
0
投票

如何在没有透明背景的情况下显示 tkinter 图像

在不使用 PIL 命名空间的情况下尝试此操作。

  • 在mainlioop()之前添加这个wm_attributes

狙击:

import tkinter as tk

root = tk.Tk()

path = "p2.png"

photo = tk.PhotoImage(file=path)
tk.Label(root,image=photo,bg='grey').pack(side = "bottom", fill = "both", expand = "yes")

#your other label or button or ...
root.wm_attributes("-transparentcolor", 'grey')
root.mainloop()

截图:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.