【Python案例】零基础手把手带你用Python写个桌面挂件
嗨嗨,大家好 ~ 我是小圆
大家应该都知道桌面挂件是啥吧,今天外面就来做一只桌面宠物吧 ~
嘿嘿做一个皮卡丘的 !
相关文件
声明:图片素材源于网络,侵歉删。
开发工具
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写个桌面挂件相关推荐
- CTF零基础--手把手带你如何下载调用dirsearch工具
dirsearch是比较实用的扫描渗透工具,作为刚接触的小白来说,不知道从何开始,甚至怎么安装或者调用都不知从何入手,这里通过图文形式手把手带小白们实操,希望有所帮助. --下载 下载的途径很多,CS ...
- python从零基础到项目实战怎么样-Python 3.x网络爬虫从零基础到项目实战
● 案例完整 本书中的所有案例都是通过"理论讲解 + 环境搭建 + 完整代码及分析 + 运行结果"这种完善的结构进行讲解的.此外,复杂的案例配有项目结构图,有难度的案例还分析了底层 ...
- python打字机效果_零基础手把手教你用Python做一个怀旧打字机
忙碌的生活和飞速发展的科技正改变着人们的阅读习惯,为了"增加效率",文章只看标题,视频10秒刷走.是不是有这么一种感觉,一个小时内看遍世间繁华
- 初学者先学python语音好吗_献给Python初学者 零基础学习Python能学会吗
献给Python初学者 零基础学习Python能学会吗 时间:2018-01-08 来源:零基础学习Python方法讲解 零基础学习Python能学会吗?这个问题几乎是所有初学Python的小 ...
- 视频教程-手把手带你学会python爬虫-Python
手把手带你学会python爬虫 曾在某大型公司大型互联网任职多年,在公司主要从事移动端开发.全栈开发.主要技术栈是Android.Java.Python.爬虫.Linux等等. 赵庆元 ¥99.00 ...
- 视频教程-Python开发零基础入门-计算机基础-Python
Python开发零基础入门-计算机基础 马哥教育Python金牌讲师,国内知名Python技术专家,在Python全栈.Python运维开发.Python数据挖掘.爬虫.人工智能等领域有深入研究,有1 ...
- 学习python一开始枯燥_编程零基础应当怎样开始学python?他说,看这三个经典方法...
很多时候,想就是不如做. 与其想着怎样开始学python,不如赶紧找份python教程先看起来! 当然,这只是告诉你,想不如开始做! 下面,我针对python初学介绍一下可以借鉴的方法! 1.看书 这 ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- 0基础学python-看完这篇,零基础也知道怎么学Python
原标题:看完这篇,零基础也知道怎么学Python 近期 ,不少读者后台询问类似这样的一些问题 : 大佬 ,我是一个小白 ,很想学习 Python ,它能做些什么啊 ?您这边有什么好的入门建议吗 ? 坦 ...
最新文章
- mysql会话命令_mysql常用命令(持续更新)
- 数据中心水冷系统一次泵与二次泵的选择
- 一棵树,怎么就平衡了(图解AVL+实现)
- 请你简要说明一下线程的基本状态以及状态之间的关系?
- Centos安装、配置nginx
- 反汇编程序导致程序crash的解决思路
- [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
- 在POM 4中,dependency中还引入了scope可以使用5个值
- python用海伦公式求面积_Python:平面直角坐标系下用三点求所构三角形面积
- 网易云音乐喊话酷狗称其“耍猴”:专利文件与“跟听”毫无关系
- gtx1050ti最稳定的驱动_最便宜图灵吃鸡卡 华硕GTX 1650评测
- 基于SpringBoot的统计报表后台管理系统
- CAD用Ctrl+V复制粘贴东西的时候特别慢
- JAVA技术未来十年的发展
- matlab回文数,用Matlab求水花数-完美数-回文数和亲合数.doc
- Ubuntu 10.04 HP LaserJet 无法打印 **** Unable to open the initial device, quitting 错误
- Verilog仿真器
- HTML、CSS面试题
- scrum立会报告+燃尽图(第二周第三次)
- WebApi系列~通过HttpClient来调用Web Api接口
热门文章