Python Tkinter 实现水印窗口:隐藏标题栏、总在最前、透明背景、窗口穿透

使用 Python Tkinter 库可以轻松创建水印窗口,并实现一些特殊效果,例如隐藏标题栏、总在最前、透明背景、窗口穿透等。

基本代码

import tkinter as tk

class WatermarkWindow:
    def __init__(self, master):
        self.master = master
        self.master.geometry('400x300')
        self.master.title('Watermark Window')
        self.master.attributes('-alpha', 0.5) # 设置半透明度

        self.label = tk.Label(self.master, text='Watermark Text', font=('Arial', 20))
        self.label.pack(pady=50)

if __name__ == '__main__':
    root = tk.Tk()
    app = WatermarkWindow(root)
    root.mainloop()

实现隐藏标题栏、总在最前、透明背景、窗口穿透

import tkinter as tk

class WatermarkWindow:
    def __init__(self, master):
        self.master = master
        self.master.overrideredirect(True) # 隐藏标题栏
        self.master.attributes('-topmost', True) # 总在最前
        self.master.attributes('-transparentcolor', 'white') # 设置背景色透明
        self.master.attributes('-alpha', 0.5) # 设置半透明度
        self.master.wm_attributes('-toolwindow', True) # 设置为工具窗口
        self.master.wm_attributes('-fullscreen', True) # 窗口全屏
        self.master.wm_attributes('-fullscreen', False) # 取消窗口全屏

        self.label = tk.Label(self.master, text='Watermark Text', font=('Arial', 20))
        self.label.pack(pady=50)

        self.master.bind('<Button-1>', self.drag) # 实现拖动窗口的功能

    def drag(self, event):
        # 获取鼠标当前位置和窗口位置
        x = self.master.winfo_pointerx() - self.master.winfo_rootx()
        y = self.master.winfo_pointery() - self.master.winfo_rooty()
        # 移动窗口
        self.master.geometry('+%d+%d' % (x, y))

if __name__ == '__main__':
    root = tk.Tk()
    app = WatermarkWindow(root)
    root.mainloop()

代码解释

  1. 隐藏标题栏:使用self.master.overrideredirect(True)实现。

  2. 总在最前:使用self.master.attributes('-topmost', True)实现。

  3. 设置背景色透明:使用self.master.attributes('-transparentcolor', 'white')实现,其中'white'可以替换为其他颜色。

  4. 窗口半透明:使用self.master.attributes('-alpha', 0.5)实现,其中0.5可以替换为其他透明度值。

  5. 窗口穿透:使用self.master.wm_attributes('-toolwindow', True)实现。

  6. 窗口拖动:使用self.master.bind('<Button-1>', self.drag)实现。在drag方法中,获取鼠标当前位置和窗口位置,然后移动窗口。

  7. 窗口全屏:使用self.master.wm_attributes('-fullscreen', True)实现。取消窗口全屏可以使用self.master.wm_attributes('-fullscreen', False)

注意

由于窗口被设置为工具窗口,可能会导致窗口无法最小化,需要使用任务管理器来关闭窗口。

Python Tkinter 实现水印窗口:隐藏标题栏、总在最前、透明背景、窗口穿透

原文地址: https://www.cveoy.top/t/topic/joEs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录