我想把三个独立的红色盒子放在透明的窗户上。
我使用的第一种方法依赖于一张带有透明背景的三个矩形框的图片(因为我是tkinter的新手),然后把它放在透明窗口上。
from PIL import ImageTk, PngImagePlugin
from tkinter import *
import tkinter as tkr
app = tkr.Tk()
app.title("AI Cashier")
app.geometry("1366x768")
app.wm_attributes("-alpha", 0.1)
my_img = ImageTk.PhotoImage(PngImagePlugin.Image.open("Capture1.png"))
my_label = Label(image= my_img)
my_label.pack()
app.mainloop()然而,最终结果也给了我透明的红色矩形.你能帮我解决这个问题吗?
我想尝试第二种方法,使用代码来绘制红色矩形,而不是使用图片,但我真的不知道如何...
我敢打赌,这是一个愚蠢的问题,但感谢任何想要回答这个问题的人。
发布于 2020-06-21 12:41:25
这是一个聪明的问题..。
我已经想出了一个解决这个问题的办法。-alpha属性用于调整整个窗口的透明度,为了仅调整窗口的某些部分(小部件)的透明度,我们使用-transparentcolor属性。我们所做的就是指定一种颜色作为我们的透明颜色,每当我们使用与任何小部件的bg颜色相同的颜色时,它都会自动将该特定小部件设置为透明颜色。
这是我的代码..
import tkinter as tkr
app = tkr.Tk()
app.title("AI Cashier")
app.geometry("1366x768")
app.wm_attributes("-transparentcolor", "white") #the color "White" will now be used to represent a transparent background
app.config(bg = "White")
can = tkr.Canvas(app,bg = "White",highlightthickness = 0)
can.create_rectangle(100,50,160,100,outline = "Black",fill="red",width = 2)
can.create_rectangle(180,50,240,100,outline = "Black",fill="red",width = 2)
can.create_rectangle(260,50,320,100,outline = "Black",fill="red",width = 2)
can.pack()
app.mainloop()输出-

我希望这能帮助你..。
https://stackoverflow.com/questions/62491578
复制相似问题