首页 分享 桌面宠物python

桌面宠物python

来源:萌宠菠菠乐园 时间:2025-01-14 00:10

桌面宠物python

最新推荐文章于 2024-12-11 17:45:47 发布

morcake 于 2023-01-16 15:26:43 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

import os

import sys

import random

from PyQt5.QtGui import *

from PyQt5.QtCore import *

from PyQt5.QtWidgets import *

class DesktopPet(QWidget):

def __init__(self, parent=None, **kwargs):

super(DesktopPet, self).__init__(parent)

self.init()

self.initPall()

self.initPetImage()

self.petNormalAction()

def init(self):

self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.SubWindow)

self.setAutoFillBackground(False)

self.setAttribute(Qt.WA_TranslucentBackground, True)

self.repaint()

def initPall(self):

icons = os.path.join('tigerIcon.jpg')

quit_action = QAction('退出', self, triggered=self.quit)

quit_action.setIcon(QIcon(icons))

showing = QAction(u'显示', self, triggered=self.showwin)

self.tray_icon_menu = QMenu(self)

self.tray_icon_menu.addAction(quit_action)

self.tray_icon_menu.addAction(showing)

self.tray_icon = QSystemTrayIcon(self)

self.tray_icon.setIcon(QIcon(icons))

self.tray_icon.setContextMenu(self.tray_icon_menu)

self.tray_icon.show()

def initPetImage(self):

self.talkLabel = QLabel(self)

self.talkLabel.setStyleSheet("font:15pt '楷体';border-width: 1px;color:blue;")

self.image = QLabel(self)

self.movie = QMovie("normal/normal1.gif")

self.movie.setScaledSize(QSize(200, 200))

self.image.setMovie(self.movie)

self.movie.start()

self.resize(1024, 1024)

self.randomPosition()

self.show()

self.pet1 = []

for i in os.listdir("normal"):

self.pet1.append("normal/" + i)

self.dialog = []

with open("dialog.txt", "r") as f:

text = f.read()

self.dialog = text.split("n")

def petNormalAction(self):

self.timer = QTimer()

self.timer.timeout.connect(self.randomAct)

self.timer.start(3000)

self.condition = 0

self.talkTimer = QTimer()

self.talkTimer.timeout.connect(self.talk)

self.talkTimer.start(3000)

self.talk_condition = 0

self.talk()

def randomAct(self):

if not self.condition:

self.movie = QMovie(random.choice(self.pet1))

self.movie.setScaledSize(QSize(200, 200))

self.image.setMovie(self.movie)

self.movie.start()

else:

self.movie = QMovie("./click/click.gif")

self.movie.setScaledSize(QSize(200, 200))

self.image.setMovie(self.movie)

self.movie.start()

self.condition = 0

self.talk_condition = 0

def talk(self):

if not self.talk_condition:

self.talkLabel.setText(random.choice(self.dialog))

self.talkLabel.setStyleSheet(

"font: bold;"

"font:25pt '楷体';"

"color:white;"

"background-color: white"

"url(:/)"

)

self.talkLabel.adjustSize()

else:

self.talkLabel.setText("别点我")

self.talkLabel.setStyleSheet(

"font: bold;"

"font:25pt '楷体';"

"color:white;"

"background-color: white"

"url(:/)"

)

self.talkLabel.adjustSize()

self.talk_condition = 0

def quit(self):

self.close()

sys.exit()

def showwin(self):

self.setWindowOpacity(1)

def randomPosition(self):

screen_geo = QDesktopWidget().screenGeometry()

pet_geo = self.geometry()

width = (screen_geo.width() - pet_geo.width()) * random.random()

height = (screen_geo.height() - pet_geo.height()) * random.random()

self.move(width, height)

def mousePressEvent(self, event):

self.condition = 1

self.talk_condition = 1

self.talk()

self.randomAct()

if event.button() == Qt.LeftButton:

self.is_follow_mouse = True

self.mouse_drag_pos = event.globalPos() - self.pos()

event.accept()

self.setCursor(QCursor(Qt.OpenHandCursor))

def mouseMoveEvent(self, event):

if Qt.LeftButton and self.is_follow_mouse:

self.move(event.globalPos() - self.mouse_drag_pos)

event.accept()

def mouseReleaseEvent(self, event):

self.is_follow_mouse = False

self.setCursor(QCursor(Qt.ArrowCursor))

def enterEvent(self, event):

self.setCursor(Qt.ClosedHandCursor)

def contextMenuEvent(self, event):

menu = QMenu(self)

quitAction = menu.addAction("退出")

hide = menu.addAction("隐藏")

action = menu.exec_(self.mapToGlobal(event.pos()))

if action == quitAction:

qApp.quit()

if action == hide:

self.setWindowOpacity(0)

if __name__ == '__main__':

app = QApplication(sys.argv)

pet = DesktopPet()

sys.exit(app.exec_())

相关知识

python桌面宠物模块
python桌面宠物软件下载
python如何制作桌面宠物
用python写个桌面挂件
如何用python写一个桌面宠物
Python实现桌面挂件,做一只可爱的桌面宠物~
用Python制作桌面宠物
Python实现桌面宠物教程与代码解析
用Python实现自制桌面宠物,变出一个桌面小挂件
用Python写个桌面挂件,手把手带你做只桌面宠物~

网址: 桌面宠物python https://www.mcbbbk.com/newsview1021340.html

所属分类:萌宠日常
上一篇: python如何制作桌面宠物 –
下一篇: 萌宠桌面壁纸软件有哪些

推荐分享