Python制作桌宠喔(一)——初始准备

 QQ技术分享交流互助群

 我把整个文件(这个实践的)放“喵做梦技术讨论群”里了,需者加群自取。

QQ群号:566341887   (大家一起互帮互助,共同进步,交流分享,奔赴未来!)

 序

呃啊啊啊,就是做这个东西的话,加些功能确实是可以辅助我们干很多事情,或者起到一些别的作用。本来也挺想做的,但是,我去搜了一下打码啥啥的,有好几篇就是重复,一模一样的,然后别的也不是很懂感觉(可能个人问题)。所以我也就想写一篇好的,就是好到基本上都会的样子,也就只能多找几篇文章,然后理解总结,写进来。

一、安装PyQT5

额,我当初犯了个错误就是下载成了PyQT……好了,强调一下是PyQT5,大家别搞错了。

这个python安装库都是差不多的,基本方法通用。

1.打开运行

按住“菜单键”+R(Windows的话,菜单键就是那个四个方块的那个)

 2.打开cmd

这步非常简单啦,就是输入cmd,然后点击“确定”。(不难吧……)

3.安装PyQT5

 在里面,输入以下内容pip install PyQT5,然后回车(Enter)。

(非常简单吧)

pip install PyQT5

(直接复制拿走,不会错的)

之后他会开始下载,我中途截图截了一张,参考一下吧就。

 (前面那个红的黄的是我之前下载错了……不用管,就当举反例了)差不多就这样,等进度条走到底,然后下面再弹一点东西就下载完了。

好,简单吧,步骤清清楚楚,接下来就是步入正题了。

二、导入库

这个,好些文章里面,大部分都是直接“啪”甩你脸上,然后解释不多。

我这就根据我个人想法慢慢来,以后没准要用到,会补充的到时候。

 1.思路

randint:首先对于这个灵活性,包括什么对话,以及动作啊,待机的移动啊,都要有点随机性吧。

sys:由于不是这个pygame,那关闭这个窗口就需要这个了……(好像是sys.exit(),退出,嗯对)

os:我还看到那个os库,有说是加载文件的,我觉得吧,根据他这个功能来看,确实会用到,所以还是加上比较好。

别的再说。

2.其他PyQT5的库

额,这些基本上找不到解释,几乎每篇都有,那么可以理解为是整个项目的“地基”。

但是啊,有3条都是有的,但是有个别文章多了一个调用,还不一样,那就先把最基本的说了。

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

最基础的三个,最好跟着打一下代码最好,留点印象。然后另外一个不是很明确,到时候,具体情况具体讨论,嗯。

3.目前所有库

其实前面就这么讲点,直接跳过来也可以……吧。

那么根据前面所说,要用到的就这些。

import os
import sys
from random import randint
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

三、定义类

额,现在也就那个初始化差不多,这个还是简单的。

1.思路

首先就对这个桌宠的话,我总结出来就是,他的功能全部集聚在这个类里面,功能就是一堆def,弄出来的。然后运行的话,就后面4行,这个再说。

反正就是这么个意思,然后为了保证运行不报错,有些先不讲。

2.代码部分

定义一个类,简短点的话,我随便取一个就叫dp(Desktop Pet)(不知道有没有这个英文单词……),然后根据这个库的话就是说,他定义的时候还要加点东西(就是括号里面)。

class dp(QWidget):

然后定义一个def。

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

3.初始化

额,写法还挺多的,为了方便,我就讲一种不额外定义的,直接写在同一个def里面。

(1)核心代码

self.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint|Qt.SubWindow)
self.setAutoFillBackground(False)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.repaint()

(2)意义

额一点一点来嗷。

第一行:Qt.FramelessWindowHint:就是这个窗口没有边框,所以就有那种在桌面的感觉。

              Qt.WindowStaysOnTopHint:把窗口的层级处于最高,以至于不会因为别的窗口,从而被覆盖掉。

             Qt.SubWindow:就是作为一个子窗口。

第二行:背景透明。(True就是填充,可以自己改一下运行试试。)

第三行:窗口透明,这样就不会有那个叉叉啥的,额这样有点突兀就是。(有兴趣的可以改成True看看效果)

第四行:差不多可以理解为刷新,跟pygame里面的pygame.display.flip()差不多。

以上就是初始化了,好,我们继续。

四、运行部分

这个写完之后,就几乎不会改了,也非常简单,先放代码。

额,我比较过来,写法也不止一种,但是相对普遍的还是用创建application对象,也有用self.show()的,我觉得还是前者好一点。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    pet = dp()
    sys.exit(app.exec_())

应该也好懂的吧。

app就是一个变量。pet也是,而且赋值的是之前定义的那个类。

最后那个就是退出了。

五、总结

这篇就到这里,可能确实很短,但是也就只能这样了。后面好些东西,我得要先自己琢磨琢磨,总结好再发,尽可能方便你们理解……

(更新速度可能比较慢?额,主要是不太有时间……尽量快些更新,主要是我自己也想学……嗯嗯喵)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值