You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux系统下用tkinter实现透明背景十字准星的解决方案求助

Linux系统下用tkinter实现透明背景十字准星的解决方案求助

注意:我用的是Linux系统

我刚接触Python的tkinter GUI开发,现在想做一个只有文字显示、背景完全透明的组件(原本想做Text组件,现在用Canvas画了个红色+号),结果卡住了。

目前我已经能画出这个+号,但背景一直是白色的。试了用:

root.wm_attributes("-alpha", 0.5)

结果整个窗口都变半透明了,可背景还是白色,连那个红色的+号也跟着变透明了,这不是我想要的效果。

我想实现的是只有+号清晰显示,窗口背景完全透明,不会遮挡后面的内容,该怎么做呢?

以下是我的代码:

from tkinter import *      

def center_window(window):
    window.update_idletasks()
    width = window.winfo_width()
    height = window.winfo_height()
    screen_width = window.winfo_screenwidth()
    screen_height = window.winfo_screenheight()
    x = (screen_width - width) // 2
    y = (screen_height - height) // 2
    window.geometry(f"{width}x{height}+{x}+{y}")
    canvas.create_text(100, 100, text="+", fill="red", font=("Purisa", 20, ""))
    canvas.pack()
    root.wait_visibility(root)
    root.attributes("-alpha", 0.5)

root=Tk()
canvas = Canvas()
center_window(root)      
root.mainloop()

现在的效果是:窗口整体半透明,但背景依然是白色,红色的+号也跟着变得半透明。

另外还有个小问题:当我点击窗口之外的区域时,窗口的透明效果就消失了,原本半透明的窗口会变回不透明的白色背景状态。

备注:内容来源于stack exchange,提问作者Z.Davey

火山引擎 最新活动