Python Tkinter 实现水印窗口:隐藏标题栏、总在最前、透明背景、窗口穿透
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()
代码解释
-
隐藏标题栏:使用
self.master.overrideredirect(True)实现。 -
总在最前:使用
self.master.attributes('-topmost', True)实现。 -
设置背景色透明:使用
self.master.attributes('-transparentcolor', 'white')实现,其中'white'可以替换为其他颜色。 -
窗口半透明:使用
self.master.attributes('-alpha', 0.5)实现,其中0.5可以替换为其他透明度值。 -
窗口穿透:使用
self.master.wm_attributes('-toolwindow', True)实现。 -
窗口拖动:使用
self.master.bind('<Button-1>', self.drag)实现。在drag方法中,获取鼠标当前位置和窗口位置,然后移动窗口。 -
窗口全屏:使用
self.master.wm_attributes('-fullscreen', True)实现。取消窗口全屏可以使用self.master.wm_attributes('-fullscreen', False)。
注意
由于窗口被设置为工具窗口,可能会导致窗口无法最小化,需要使用任务管理器来关闭窗口。
原文地址: https://www.cveoy.top/t/topic/joEs 著作权归作者所有。请勿转载和采集!