Frontend Development 17 min read

Creating a Desktop Pet with Python and PyQt5: Full Guide and Source Code

This tutorial walks through building a Windows desktop pet using Python and PyQt5, covering asset preparation, GIF creation methods, project structure, detailed source code explanation, interactive features, and packaging the application with PyInstaller.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Creating a Desktop Pet with Python and PyQt5: Full Guide and Source Code

The article explains how to create a desktop pet application on Windows using Python and the PyQt5 library.

It first describes the required visual assets, recommending white‑background GIFs for normal and click animations, and shows three ways to obtain them: exporting from video with Premiere, assembling in Photoshop, or downloading from the web.

Next, the project structure is outlined (main.py as entry point, normal/ and click/ folders for GIFs, dialog.txt for speech lines) and the full source code is presented.

Key code sections include importing the necessary modules:

import os
import sys
import random
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

The DesktopPet class sets a frameless, always‑on‑top window, enables transparent background, and creates a system‑tray icon with “Show” and “Quit” actions.

Methods init() , initPall() , and initPetImage() initialize the window, tray, and load GIFs and dialog text, while petNormalAction() uses QTimer to periodically change the pet’s animation and speech.

Interaction is handled by overriding mousePressEvent , mouseMoveEvent , mouseReleaseEvent , enterEvent , and contextMenuEvent to support dragging, changing cursor, and showing a context menu for hide/quit.

Finally, the article shows how to package the program with PyInstaller using pyinstaller -F -w main.py and notes that the generated main.exe must be placed in the project root to run correctly.

GUIPythonpackagingPyQt5desktop-petGIF AnimationSystem Tray
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.