下面是一个实现上述要求的 Python 代码示例:

import sys
import time
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QIcon, QPainter
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QSystemTrayIcon, QMenu

class Car(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(100, 100, 600, 400)
        self.setWindowTitle('Car')
        self.setWindowIcon(QIcon('car_icon.png'))  # 替换为自己的小车图标
        self.tray_icon = QSystemTrayIcon(self)
        self.tray_icon.setIcon(QIcon('car_icon.png'))  # 替换为自己的小车图标
        self.tray_icon.setToolTip('Car')
        self.tray_icon.show()
        self.tray_menu = QMenu()
        self.restore_action = self.tray_menu.addAction('恢复')
        self.quit_action = self.tray_menu.addAction('退出')
        self.tray_icon.setContextMenu(self.tray_menu)
        self.restore_action.triggered.connect(self.restore)
        self.quit_action.triggered.connect(self.quit)
        
        self.speed = 1  # 初始速度为1
        self.x = 0
        self.y = 0
        self.car_width = 50
        self.car_height = 30
        self.timer = None
        
        self.show()
    
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        self.drawCar(qp)
        qp.end()
    
    def drawCar(self, qp):
        qp.setBrush(Qt.black)
        qp.drawRect(self.x, self.y, self.car_width, self.car_height)
    
    def moveCar(self):
        self.x += self.speed
        self.y += self.speed
        if self.x > self.width() or self.y > self.height():
            self.timer.stop()
    
    def restore(self):
        self.show()
    
    def quit(self):
        self.tray_icon.hide()
        self.close()
    
    def closeEvent(self, event):
        event.ignore()
        self.hide()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    car = Car()
    car.timer = QTimer()
    car.timer.timeout.connect(car.moveCar)
    car.timer.start(10)  # 定时器间隔为10毫秒,控制小车移动的速度
    sys.exit(app.exec_())

上述代码使用 PyQt5 库创建了一个窗口,继承自 QWidget 类,并实现了绘制小车、移动小车、恢复窗口、退出程序等功能。其中,小车的移动通过定时器实现,定时器的间隔可以通过调整car.timer.start()方法的参数来控制小车的速度。程序转入后台时,窗口会隐藏,但定时器仍在继续移动小车。右键点击托盘区图标可以弹出菜单,点击'恢复'可以重新显示窗口,点击'退出'可以退出程序。

Python GUI 小车动画:从左上角到右下角匀速移动

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

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