我下了大约60多种宠物的图片素材供大家选择:
接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的桌面挂件基本都是基于tkinter的,为了突出公众号的与众不同,这里我们采用PyQt5来实现我们的桌面宠物。
首先,我们来初始化一个桌面宠物的窗口组件:
classDesktopPet(QWidget):def__init__(self,parent=None,**kwargs):super(DesktopPet,self).__init__(parent)self.show()它的效果是这样子的:
接下来,我们设置一下窗口的属性让更适合作为一个宠物的窗口:
#初始化self.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint|Qt.SubWindow)self.setAutoFillBackground(False)self.setAttribute(Qt.WA_TranslucentBackground,True)self.repaint()并随机导入一张宠物图片来看看运行效果:
#随机导入一个宠物self.pet_images,iconpath=self.randomLoadPetImages()#当前显示的图片self.image=QLabel(self)self.setImage(self.pet_images[0][0])其中随机导入一个宠物的所有图片的函数代码实现如下:
好像蛮不错的呢~等等,好像有问题,重新设置了窗口属性之后,这玩意咋退出啊?在宠物右上角加个×这样的符号又好像很奇怪?
别急,我们可以给我们的桌面宠物添加一个托盘图标,以实现桌面宠物程序的退出功能:
OK,这样好像有模有样了呢~但是好像还是不太对的样子,这宠物每次在桌面生成的位置是随机的,但是我们却无法调整这个宠物的位置,这显然不合理,作为一个桌面宠物,你肯定不能在妨碍主人工作的位置啊!要不我们来写一下鼠标按下、移动以及释放时的函数吧,这样就可以用鼠标拖动它了:
哈哈,越来越像样了呢~最后,作为一个活泼的宠物,你不能这么呆板,一动也不动吧?好歹要学会做做表情逗主人开心吧?OK,我们先来设置一个定时器: