Créez un cadre avec un fond transparent avec tkinter.
Windows10 Python3.7
from tkinter import ttk
import tkinter
root=tkinter.Tk()
root.wm_attributes("-transparentcolor", "snow")
#root.attributes("-alpha",0.5)
ttk.Style().configure("TP.TFrame", background="snow")
f=ttk.Frame(master=root,style="TP.TFrame",width="400",height="300")
f.pack()
label=ttk.Label(master=root,text="Ne deviens pas plus mince ...",foreground="red",background="snow")
label.place(x=150,y=150)
root.mainloop()
Spécifiez la couleur que vous voulez rendre transparente à transparentcolor
dans root.wm_attributes
. Cette fois, réglé sur «neige».
A partir de là, l'arrière-plan de «f» et «étiquette» dont «l'arrière-plan» est «neige» devient transparent.
L'arrière-plan du cadre et de l'étiquette est transparent et le fond d'écran est visible. Je peux voir de la neige sur l'étiquette, mais ça n'aide pas (ça fait du mal)
Code root.wm_attributes (" -transparentcolor "," snow ")
Vous pouvez certainement changer la transparence avec [0,1] avec la valeur de -alpha en faisant quelque chose comme root.attributes (" -alpha ", 0.5)
.
Mais,
Notez que la transparence est appliquée à l'objet entier tel que Label en racine de cette manière.
[Python] [TkInter] Générer un cadre transparent ↑ Il semble qu'il puisse être reproduit avec le contenu de cet article sous environnement Mac (non confirmé car il n'y a pas d'environnement à portée de main).
J'ai vérifié s'il pouvait être reproduit sous Linux, mais je n'ai pas pu le résoudre après tout ... Si vous exécutez l'exemple de code ci-dessus tel quel sous l'environnement ubuntu 18.04.4 actuel,
Traceback (most recent call last):
File "hoge.py", line 5, in <module>
root.wm_attributes("-transparentcolor", "snow")
File "/usr/lib/python3.6/tkinter/__init__.py", line 1788, in wm_attributes
return self.tk.call(args)
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type
C'est devenu.
Recommended Posts