Erstellen Sie mit tkinter einen Rahmen mit transparentem Hintergrund.
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="Nicht dünner werden ...",foreground="red",background="snow")
label.place(x=150,y=150)
root.mainloop()
Geben Sie die Farbe, die transparent sein soll, für die "transparente Farbe" von "root.wm_attributes" an. Diesmal auf "Schnee" eingestellt. Daraus wird der Hintergrund von "f" und "label", dessen "Hintergrund" "Schnee" ist, transparent.
Der Hintergrund von Rahmen und Beschriftung ist transparent und das Hintergrundbild ist sichtbar. Ich kann etwas Schnee auf dem Etikett sehen, aber das hilft nicht (es fühlt sich schlecht an)
Die root.wm_attributes (" -transparentcolor "," snow ")
im obigen Code
Sie können die Transparenz mit [0,1] mit dem Wert von -alpha ändern, indem Sie etwas wie "root.attributes (" -alpha ", 0.5)" ausführen.
Aber,
Beachten Sie, dass auf diese Weise Transparenz auf das gesamte Objekt angewendet wird, z. B. Beschriftung im Stammverzeichnis.
[Python] [TkInter] Generieren Sie einen transparenten Frame ↑ Es scheint, dass es mit dem Inhalt dieses Artikels unter Mac-Umgebung reproduziert werden kann (unbestätigt, da keine Umgebung zur Verfügung steht).
Ich habe geprüft, ob es unter Linux reproduziert werden kann, aber ich konnte es doch nicht lösen ... Wenn Sie den obigen Beispielcode so ausführen, wie er sich in der vorliegenden Ubuntu 18.04.4-Umgebung befindet,
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
Es wurde.
Recommended Posts