嗨嗨,大家好 ~ 我是小圆

大家应该都知道桌面挂件是啥吧,今天外面就来做一只桌面宠物吧 ~
嘿嘿做一个皮卡丘的 !

相关文件

声明:图片素材源于网络,侵歉删。

开发工具

Python版本:3.6.4

相关模块:

PyQt5模块;

以及一些Python自带的模块。

环境搭建安装

Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘:

我下了大约60多种宠物的图片素材供大家选择:

在相关文件里都打包一起提供了,所以这里就不分享爬虫代码了(我挑选了一下,只要不是我觉得特别丑的,我基本都保留了),别给人家服务器带来不必要的压力。

接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的桌面挂件基本都是基于tkinter的,为了突出公众号的与众不同,这里我们采用PyQt5来实现我们的桌面宠物。

首先,我们来初始化一个桌面宠物的窗口组件:

python学习交流Q群:770699889 ###
class DesktopPet(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()

并随机导入一张宠物图片来看看运行效果:

图片资料源码领取:770699889 ###
# 随机导入一个宠物
self.pet_images, iconpath = self.randomLoadPetImages()
# 当前显示的图片
self.image = QLabel(self)
self.setImage(self.pet_images[0][0])

其中随机导入一个宠物的所有图片的函数代码实现如下:

'''随机导入一个桌面宠物的所有图片'''
图片资料源码领取:770699889 ###
def randomLoadPetImages(self):pet_name = random.choice(list(cfg.PET_ACTIONS_MAP.keys()))actions = cfg.PET_ACTIONS_MAP[pet_name]pet_images = []for action in actions:pet_images.append([self.loadImage(os.path.join(cfg.ROOT_DIR, pet_name, 'shime'+item+'.png')) for item in action])iconpath = os.path.join(cfg.ROOT_DIR, pet_name, 'shime1.png')return pet_images, iconpath

当然,我们也希望宠物每次在桌面上出现的位置是随机的,这样会更有趣一些:

'''随机到一个屏幕上的某个位置'''
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)

现在,运行我们的程序时,效果是这样子的:

好像蛮不错的呢~等等,好像有问题,重新设置了窗口属性之后,这玩意咋退出啊?在宠物右上角加个×这样的符号又好像很奇怪?

别急,我们可以给我们的桌面宠物添加一个托盘图标,

以实现桌面宠物程序的退出功能:

领取

【Python案例】零基础手把手带你用Python写个桌面挂件相关推荐

  1. CTF零基础--手把手带你如何下载调用dirsearch工具

    dirsearch是比较实用的扫描渗透工具,作为刚接触的小白来说,不知道从何开始,甚至怎么安装或者调用都不知从何入手,这里通过图文形式手把手带小白们实操,希望有所帮助. --下载 下载的途径很多,CS ...

  2. python从零基础到项目实战怎么样-Python 3.x网络爬虫从零基础到项目实战

    ● 案例完整 本书中的所有案例都是通过"理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果"这种完善的结构进行讲解的.此外,复杂的案例配有项目结构图,有难度的案例还分析了底层 ...

  3. python打字机效果_零基础手把手教你用Python做一个怀旧打字机

    忙碌的生活和飞速发展的科技正改变着人们的阅读习惯,为了"增加效率",文章只看标题,视频10秒刷走.是不是有这么一种感觉,一个小时内看遍世间繁华

  4. 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗

    献给Python初学者 零基础学习Python能学会吗 时间:2018-01-08     来源:零基础学习Python方法讲解 零基础学习Python能学会吗?这个问题几乎是所有初学Python的小 ...

  5. 视频教程-手把手带你学会python爬虫-Python

    手把手带你学会python爬虫 曾在某大型公司大型互联网任职多年,在公司主要从事移动端开发.全栈开发.主要技术栈是Android.Java.Python.爬虫.Linux等等. 赵庆元 ¥99.00 ...

  6. 视频教程-Python开发零基础入门-计算机基础-Python

    Python开发零基础入门-计算机基础 马哥教育Python金牌讲师,国内知名Python技术专家,在Python全栈.Python运维开发.Python数据挖掘.爬虫.人工智能等领域有深入研究,有1 ...

  7. 学习python一开始枯燥_编程零基础应当怎样开始学python?他说,看这三个经典方法...

    很多时候,想就是不如做. 与其想着怎样开始学python,不如赶紧找份python教程先看起来! 当然,这只是告诉你,想不如开始做! 下面,我针对python初学介绍一下可以借鉴的方法! 1.看书 这 ...

  8. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  9. 0基础学python-看完这篇,零基础也知道怎么学Python

    原标题:看完这篇,零基础也知道怎么学Python 近期 ,不少读者后台询问类似这样的一些问题 : 大佬 ,我是一个小白 ,很想学习 Python ,它能做些什么啊 ?您这边有什么好的入门建议吗 ? 坦 ...

最新文章

  1. mysql会话命令_mysql常用命令(持续更新)
  2. 数据中心水冷系统一次泵与二次泵的选择
  3. 一棵树,怎么就平衡了(图解AVL+实现)
  4. 请你简要说明一下线程的基本状态以及状态之间的关系?
  5. Centos安装、配置nginx
  6. 反汇编程序导致程序crash的解决思路
  7. [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
  8. 在POM 4中,dependency中还引入了scope可以使用5个值
  9. python用海伦公式求面积_Python:平面直角坐标系下用三点求所构三角形面积
  10. 网易云音乐喊话酷狗称其“耍猴”:专利文件与“跟听”毫无关系
  11. gtx1050ti最稳定的驱动_最便宜图灵吃鸡卡 华硕GTX 1650评测
  12. 基于SpringBoot的统计报表后台管理系统
  13. CAD用Ctrl+V复制粘贴东西的时候特别慢
  14. JAVA技术未来十年的发展
  15. matlab回文数,用Matlab求水花数-完美数-回文数和亲合数.doc
  16. Ubuntu 10.04 HP LaserJet 无法打印 **** Unable to open the initial device, quitting 错误
  17. Verilog仿真器
  18. HTML、CSS面试题
  19. scrum立会报告+燃尽图(第二周第三次)
  20. WebApi系列~通过HttpClient来调用Web Api接口

热门文章

  1. 高考填报志愿必须知道的几点知识
  2. 有限的时间精力,无止境的事业
  3. Vulnhub靶机:BOREDHACKERBLOG: SOCIAL NETWORK
  4. 计算机志愿服务,我院举办“e扫而光”电脑优化志愿服务活动
  5. 数字孪生园区创新实验室落地解决方案
  6. 微信小程序倒计时,计时器隐藏与显示
  7. 电子工程师的设计经验笔记
  8. 系统缺少msxml3解析库,导致有道字典主窗口初始化失败、暴风影音停止工作的诡异问题
  9. Linux 开机自启动服务的顺序指定
  10. 普通人怎么去赚钱?想实现财务自由只能去创业。丨国仁网络资讯