以下是一个完成上述要求的 Python 代码:

import tkinter as tk
import sys
import os

# 创建窗口
window = tk.Tk()
window.geometry('500x500')

# 创建画布
canvas = tk.Canvas(window, width=500, height=500)
canvas.pack()

# 载入小车图片
car_image = tk.PhotoImage(file='car.png')
car = canvas.create_image(0, 0, anchor=tk.NW, image=car_image)

# 设置移动速度
speed = 5

# 定义移动函数
def move_car():
    x, y = canvas.coords(car)
    if x < 500 and y < 500:
        canvas.move(car, speed, speed)
        canvas.after(10, move_car)

# 开始移动
move_car()

# 点击关闭按钮时,程序最小化到任务栏托盘区
def minimize_to_tray():
    window.iconify()
    window.protocol('WM_DELETE_WINDOW', minimize_to_tray)

# 创建托盘菜单
def create_tray_menu():
    menu = tk.Menu(window, tearoff=0)
    menu.add_command(label='恢复', command=restore_from_tray)
    menu.add_command(label='退出', command=exit_program)
    return menu

# 托盘菜单点击恢复时,程序重新被切换到前台运行
def restore_from_tray():
    window.deiconify()

# 托盘菜单点击退出时,程序退出内存,停止运行
def exit_program():
    window.destroy()
    sys.exit()

# 隐藏窗口并显示托盘菜单
def hide_window(event):
    window.withdraw()
    tray_icon = tk.PhotoImage(file='tray_icon.png')
    window.iconphoto(True, tray_icon)
    tray_menu = create_tray_menu()
    tray = tk.Tk()
    tray.overrideredirect(True)
    tray.geometry('0x0')
    tray.iconphoto(True, tray_icon)
    tray.bind('<Button-1>', show_window)
    tray.bind('<Button-3>', show_tray_menu)
    tray.mainloop()

# 显示窗口
def show_window(event):
    window.deiconify()

# 显示托盘菜单
def show_tray_menu(event):
    tray_menu = create_tray_menu()
    tray_menu.post(event.x_root, event.y_root)

# 绑定关闭按钮事件
window.protocol('WM_DELETE_WINDOW', hide_window)

# 运行程序
window.mainloop()

请将上述代码保存为一个 Python 文件,然后将小车图片和托盘图标保存在同一目录下,分别命名为'car.png'和'tray_icon.png'。然后运行该 Python 文件,即可看到小车在屏幕的指定窗口区域从左上角到右下角匀速移动。点击关闭按钮后,程序将最小化到任务栏托盘区。右键点击托盘区程序对应图标,可以弹出菜单,点击“恢复”可以重新将程序切换到前台运行,点击“退出”可以退出程序。

Python 实现小车动画:从左上角到右下角匀速移动并最小化到托盘区

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

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