6

Python 玩出花儿,把罗小黑养在自己桌面

 3 years ago
source link: https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/114957009
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

d0b49a2322aa02da374de64e7687d8c6.gif

3b9bb8e1bd4f107a8caeda36851f32ba.png

作者 | 李秋键

责编 | 寇雪芹

出品 | AI科技大本营(ID:rgznai100)

引言:

了解过我们之前文章的都知道我们曾经做过一个智能桌宠项目。但是很显然那个程序过于卡段。故这一次我们将重新制作个智能桌宠项目,不同于之前的项目在于,之前使用了大量的jpg图片替换造成了卡顿现象。而这一次我们将不会采用这种方式,具体见下面代码讲解。文末附源码。

c702a5a71e7dc1b45d66a36a29e6e20a.png

7dec53742692d948ea9cdfa267977779.png

系统概述

首先,我们只做桌宠的目的是为了方便操作电脑,故这一版本将包含搭建免python环境去运行程序。即可以在没有安装python的电脑上运行桌宠程序,但过程有些复杂,只会在文末给出免安装的程序。

7cc1bf8b4c0e0bf89de8a67cf70a2f18.png

代码流程讲解

2.1 导入库:

在这里我们使用到了用os设置程序QT环境的问题。通过使用下述代码可以实现对环境的设置,这里是为了免环境程序的搭建而使用。如果我们不用可以去除这个代码:

然后导入其他所使用到的库:

2.2 设置程序整体的初始化:

程序界面的初始化包括如下内容:

(1)不规则窗口的建立;实现不规则窗口的最简单方式就是图片素材不仅当遮罩层,还当背景图片,通过重载paintEvent()函数绘制窗口背景; 使用函数setMask(self,QBitmap)setMask(self,QRegion)。setMask()的作用是为调用它的控件增加一个遮罩,遮住所选区域以外的部分,使之看起来是透明的,它的参数可以为QBitmap或QRegion对象,此处调用QPixmap的mask()函数获得图片自身的遮罩,是一个QBitmap对象,在实例中使用的是PNG格式的图片,它的透明部分就是一个遮罩

(2)鼠标初始化,这里设置鼠标的作用主要是为了能够实现鼠标拖动桌宠的效果。

(3)语料库的初始化,这里设置语料库在data.txt中。桌宠弹出的对话所搜索的txt内容也可以按照自己的需求修改。

(4)设置托盘图标。因为考虑到桌宠在不需要的时候方便管理,设置托盘图标可以随时隐藏桌宠和显示桌宠:

(5)设置右键菜单功能的初始化 :

(6)透明窗口:

(7)设置对话框,为鼠标长时间停留的对话框:

(8)设置桌宠具有随机动作:

2.3 设置GUI界面的初始化:

内容包括窗口大小位置标题等定义,具体见如下代码,都有做注解:

2.4 设置鼠标拖动功能:

鼠标拖动功能其实就是鼠标和窗口的绑定和移动解绑。即鼠标左键按下时, 宠物将和鼠标位置绑定;然后鼠标移动, 则宠物也移动;接着鼠标释放时, 取消绑定。代码如下:

2.5 设置鼠标移入时变换:

设置鼠标碰到桌宠时变成小手的状态,这样更卡通化,显得更亲近:

2.6 设置鼠标右键菜单:

这里设置的右键菜单有的功能需要按照自己的电脑路径等进行自行修改:

2.7 设置宠物状态的改变:

我们需要在我们点击桌宠时,桌宠就会对我们微笑。这样才具有人机交互性能。同时交互和随机状态还不能出现冲突。具体如下:

2.8 设置宠物对话窗口:

通过设置标签的方式作为对话窗口即可:

79f95dc925cd8f11ff6c9e093eacee52.gif

图2  gif效果图

adfc3fd0965d3c05da0f04cf9d2698c5.png

 源码

完整代码下载链接参考CODE CHINA地址:

https://codechina.csdn.net/qq_42279468/python_pet2_liqiujian

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

原文链接:

https://blog.csdn.net/jia666666/article/details/81874586

作者简介:李秋键,CSDN博客专家,CSDN达人课作者。硕士在读于中国矿业大学,开发有taptap竞赛获奖等。

6cfb2794db44ebd1a4f2bd35e57b2465.png

ae85ca745e88284cfedf691e7e476f67.png

直播间地址:

https://live.csdn.net/room/csdnnews/B3423dYF

更多精彩推荐
☞315 曝光人脸识别摄像头,进店瞬间偷走你的“脸”,自动分析心情☞玩转3D全息图像!AI即刻生成☞用 Python 动态可视化,看看比特币这几年☞Python 搭建车道智能检测系统
点分享点收藏点点赞点在看

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK