向ChatGPT提问:
- python编写一个Windows桌面小组件
- 修改为无边框
- 鼠标右键显示一个菜单,菜单点击“退出”
- 要求可拖动
- 要求半透明
完整代码
import tkinter as tk
import time
def update_clock():
current_time = time.strftime("%H:%M:%S")
label.config(text=current_time)
label.after(1000, update_clock)
def exit_app():
window.destroy()
# 创建窗口
window = tk.Tk()
window.title("桌面小组件")
# 设置窗口为无边框
window.overrideredirect(True)
# 设置窗口透明度
window.attributes('-alpha', 0.7) # 设置透明度为 0.7
# 创建标签
label = tk.Label(window, font=("Arial", 80), fg="black")
label.pack(padx=50, pady=50)
# 更新时钟
update_clock()
# 创建菜单
menu = tk.Menu(window, tearoff=0)
menu.add_command(label="退出", command=exit_app)
# 绑定鼠标右键事件
def show_menu(event):
menu.post(event.x_root, event.y_root)
window.bind("", show_menu)
# 实现拖动功能
def start_drag(event):
window.x = event.x
window.y = event.y
def drag(event):
deltax = event.x - window.x
deltay = event.y - window.y
new_x = window.winfo_x() + deltax
new_y = window.winfo_y() + deltay
window.geometry(f"+{new_x}+{new_y}")
window.bind("", start_drag)
window.bind("", drag)
# 运行窗口循环
window.mainloop()
运行
100%可以运行无报错!
结论
ChatGPT可以编写一些简单的代码并且可用性较高!
作者
TANKING