国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

寫(xiě)完這段代碼,又空虛了。

共 16808字,需瀏覽 34分鐘

 ·

2022-05-28 14:49

作者:林林zonzon?|?編輯:Jack?Cui?

https://blog.csdn.net/zujiasheng/article/details/124670676

大家好,我是 Jack。

今天分享個(gè) Python 實(shí)戰(zhàn)小項(xiàng)目,久違的基礎(chǔ)教程!

同時(shí),也有不少小伙伴問(wèn)過(guò)我,怎么打包 Python 程序?yàn)?exe 可執(zhí)行文件,正好今天的實(shí)戰(zhàn)一起講解。

用 Python 做個(gè)屬于自己的寵物桌面,對(duì)原理和代碼進(jìn)行了詳細(xì)講解,非常適合新手~

一、桌面寵物素材

1.1 需要準(zhǔn)備什么素材

桌面寵物的各種動(dòng)畫(huà)效果,可以看作是由一個(gè)個(gè)GIF動(dòng)圖拼接而成,我們需要準(zhǔn)備多組GIF動(dòng)圖來(lái)實(shí)現(xiàn)桌面寵物的動(dòng)作切換。

最好選取是白底的GIF動(dòng)圖。

1.2 介紹幾種獲得GIF動(dòng)圖的方式

1.2.1 通過(guò)pr實(shí)現(xiàn)視頻轉(zhuǎn)GIF

pr在導(dǎo)出的時(shí)候選擇動(dòng)畫(huà)GIF可以直接導(dǎo)出GIF動(dòng)圖。

當(dāng)然了想要白底就需要自己用“蒙版”和畫(huà)筆工具自己摳圖。

1.2.2 通過(guò)ps實(shí)現(xiàn)圖片組轉(zhuǎn)GIF

ps會(huì)高級(jí)一點(diǎn),首先點(diǎn)擊最上方的窗口,再點(diǎn)擊時(shí)間軸,在下方顯示出的時(shí)間軸的最右邊的加號(hào)可以添加你想要添加的圖片。圖層右邊可以選擇刪除背景。

然后選擇最上方的文件,選擇導(dǎo)出,選擇導(dǎo)出為web所用格式舊版,即可。

1.2.3 百度一下,獲取網(wǎng)上現(xiàn)成的GIF資源

1)百度:“制作GIF動(dòng)圖”

2)百度:“GIF動(dòng)圖資源”

或者干脆找個(gè)2D游戲素材網(wǎng)站也行,里面有很多角色人物素材在里面。

二、python實(shí)現(xiàn)代碼

2.1 目錄結(jié)構(gòu)

項(xiàng)目的目錄結(jié)構(gòu)整體如下:main.py為主程序代碼。

normal下的GIF圖是寵物平常會(huì)隨機(jī)切換的動(dòng)作GIF圖, click下面的GIF圖是點(diǎn)擊寵物之后的寵物動(dòng)作的GIF圖。

dialog.txt 記錄了寵物的對(duì)話信息。

tigerIcon.jpg是縮小到托盤(pán)后托盤(pán)圖標(biāo)的圖片。

2.2 實(shí)現(xiàn)代碼

2.2.1 引用包

os包用于加載文件,sys包用于退出程序,random包用于程序中一些需要調(diào)用隨機(jī)數(shù)的操作。其他的三個(gè)包則是用于實(shí)現(xiàn)桌面寵物的基礎(chǔ)。


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

2.2.2 主代碼部分


if?__name__?==?'__main__':
????#?創(chuàng)建了一個(gè)QApplication對(duì)象,對(duì)象名為app,帶兩個(gè)參數(shù)argc,argv
????#?所有的PyQt5應(yīng)用必須創(chuàng)建一個(gè)應(yīng)用(Application)對(duì)象。sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表。
????app?=?QApplication(sys.argv)
????#?窗口組件初始化
????pet?=?DesktopPet()
????# 1. 進(jìn)入時(shí)間循環(huán);
????# 2. wait,直到響應(yīng)app可能的輸入;
????# 3. QT接收和處理用戶及系統(tǒng)交代的事件(消息),并傳遞到各個(gè)窗口;
????# 4. 程序遇到exit()退出時(shí),機(jī)會(huì)返回exec()的值。
????sys.exit(app.exec_())

2.2.3 代碼運(yùn)行流程

整個(gè)運(yùn)行流程為:

  1. 通過(guò)self.init():實(shí)現(xiàn)窗體的初始化,寵物的GIF圖在這個(gè)窗體中播放

  2. 通過(guò)self.initPall():配置托盤(pán)化

  3. 通過(guò)self.initPetImage():將寵物的靜態(tài)GIF資源,包括對(duì)話和GIF動(dòng)圖進(jìn)行加載

  4. 通過(guò)self.petNormalAction():實(shí)現(xiàn)寵物隨機(jī)切換動(dòng)作和語(yǔ)句的功能


class?DesktopPet(QWidget):
????def?__init__(self,?parent=None,?**kwargs):
????????super(DesktopPet,?self).__init__(parent)
????????#?窗體初始化
????????self.init()
????????#?托盤(pán)化初始
????????self.initPall()
????????#?寵物靜態(tài)gif圖加載
????????self.initPetImage()
????????#?寵物正常待機(jī),實(shí)現(xiàn)隨機(jī)切換動(dòng)作
????????self.petNormalAction()

1、加載顯示GIF動(dòng)圖的窗體,通過(guò)函數(shù)init實(shí)現(xiàn),其代碼配置如下:

這幾句的作用是對(duì)展示寵物的窗體進(jìn)行一些初步的設(shè)置,使得白色GIF圖能夠去掉背景的白色,將GIF圖透明的展示出來(lái)。

#?窗體初始化
def?init(self):
????#?初始化
????#?設(shè)置窗口屬性:窗口無(wú)標(biāo)題欄且固定在最前面
????#?FrameWindowHint:無(wú)邊框窗口
????#?WindowStaysOnTopHint:?窗口總顯示在最上面
????#?SubWindow:?新窗口部件是一個(gè)子窗口,而無(wú)論窗口部件是否有父窗口部件
????#?https://blog.csdn.net/kaida1234/article/details/79863146
????self.setWindowFlags(Qt.FramelessWindowHint?|?Qt.WindowStaysOnTopHint?|?Qt.SubWindow)
????#?setAutoFillBackground(True)表示的是自動(dòng)填充背景,False為透明背景
????self.setAutoFillBackground(False)
????#?窗口透明,窗體空間不透明
????self.setAttribute(Qt.WA_TranslucentBackground,?True)
????#?重繪組件、刷新
????self.repaint()

2、實(shí)現(xiàn)能托盤(pán)顯示的功能,通過(guò)函數(shù)initPall實(shí)現(xiàn),其代碼配置如下:

主要有下面這幾個(gè)操作:

(1)讀取靜態(tài)圖片資源設(shè)置托盤(pán)化的圖標(biāo)。

(2)設(shè)置托盤(pán)化圖片點(diǎn)擊右鍵顯示的菜單,并對(duì)這些菜單的點(diǎn)擊操作進(jìn)行設(shè)置。

流程代碼如下:


#?托盤(pán)化設(shè)置初始化
def?initPall(self):
????#?導(dǎo)入準(zhǔn)備在托盤(pán)化顯示上使用的圖標(biāo)
????icons?=?os.path.join('tigerIcon.jpg')
????#?設(shè)置右鍵顯示最小化的菜單項(xiàng)
????#?菜單項(xiàng)退出,點(diǎn)擊后調(diào)用quit函數(shù)
????quit_action?=?QAction('退出',?self,?triggered=self.quit)
????#?設(shè)置這個(gè)點(diǎn)擊選項(xiàng)的圖片
????quit_action.setIcon(QIcon(icons))
????#?菜單項(xiàng)顯示,點(diǎn)擊后調(diào)用showing函數(shù)
????showing?=?QAction(u'顯示',?self,?triggered=self.showwin)
????#?新建一個(gè)菜單項(xiàng)控件
????self.tray_icon_menu?=?QMenu(self)
????#?在菜單欄添加一個(gè)無(wú)子菜單的菜單項(xiàng)‘退出’
????self.tray_icon_menu.addAction(quit_action)
????#?在菜單欄添加一個(gè)無(wú)子菜單的菜單項(xiàng)‘顯示’
????self.tray_icon_menu.addAction(showing)
????#?QSystemTrayIcon類(lèi)為應(yīng)用程序在系統(tǒng)托盤(pán)中提供一個(gè)圖標(biāo)
????self.tray_icon?=?QSystemTrayIcon(self)
????#?設(shè)置托盤(pán)化圖標(biāo)
????self.tray_icon.setIcon(QIcon(icons))
????#?設(shè)置托盤(pán)化菜單項(xiàng)
????self.tray_icon.setContextMenu(self.tray_icon_menu)
????#?展示
????self.tray_icon.show()

其中‘退出’項(xiàng)涉及到的函數(shù)代碼如下:

#?退出操作,關(guān)閉程序
def?quit(self):
????self.close()
????sys.exit()

其中‘顯示’項(xiàng)涉及到的函數(shù)代碼如下:

#?顯示寵物
def?showwin(self):
????#?setWindowOpacity()設(shè)置窗體的透明度,通過(guò)調(diào)整窗體透明度實(shí)現(xiàn)寵物的展示和隱藏
????self.setWindowOpacity(1)

3、寵物靜態(tài)資源的加載,通過(guò)函數(shù)initPetImage實(shí)現(xiàn),其代碼配置如下:

靜態(tài)資源的加載主要涉及兩個(gè)部分,對(duì)話框內(nèi)容的加載和圖片內(nèi)容的加載。

#?寵物靜態(tài)gif圖加載
def?initPetImage(self):
????#?對(duì)話框定義
????self.talkLabel?=?QLabel(self)
????#?對(duì)話框樣式設(shè)計(jì)
????self.talkLabel.setStyleSheet("font:15pt?'楷體';border-width:?1px;color:blue;")?
????#?定義顯示圖片部分
????self.image?=?QLabel(self)
????#?QMovie是一個(gè)可以存放動(dòng)態(tài)視頻的類(lèi),一般是配合QLabel使用的,可以用來(lái)存放GIF動(dòng)態(tài)圖
????self.movie?=?QMovie("normal/normal1.gif")
????#?設(shè)置標(biāo)簽大小
????self.movie.setScaledSize(QSize(200,?200))
????#?將Qmovie在定義的image中顯示
????self.image.setMovie(self.movie)
????self.movie.start()
????self.resize(1024,?1024)
????#?調(diào)用自定義的randomPosition,會(huì)使得寵物出現(xiàn)位置隨機(jī)
????self.randomPosition()
????#?展示
????self.show()
????#?https://new.qq.com/rain/a/20211014a002rs00
????#?將寵物正常待機(jī)狀態(tài)的動(dòng)圖放入pet1中
????self.pet1?=?[]
????for?i?in?os.listdir("normal"):
????????self.pet1.append("normal/"?+?i)
????#?將寵物正常待機(jī)狀態(tài)的對(duì)話放入pet2中
????self.dialog?=?[]
????#?讀取目錄下dialog文件
????with?open("dialog.txt",?"r")?as?f:
????????text?=?f.read()
????????#?以\n?即換行符為分隔符,分割放進(jìn)dialog中
????????self.dialog?=?text.split("\n")

其中我們希望寵物出現(xiàn)的位置是隨機(jī)的而不是固定的,那么便通過(guò) randomPosition()實(shí)現(xiàn)寵物出現(xiàn)位置的隨機(jī)。

#?寵物隨機(jī)位置
def?randomPosition(self):
????#?screenGeometry()函數(shù)提供有關(guān)可用屏幕幾何的信息
????screen_geo?=?QDesktopWidget().screenGeometry()
????#?獲取窗口坐標(biāo)系
????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)

4、寵物正常待機(jī),實(shí)現(xiàn)隨機(jī)切換動(dòng)作,對(duì)話框通過(guò)函數(shù)petNormalAction實(shí)現(xiàn),其代碼配置如下

這里通過(guò)QTimer實(shí)現(xiàn)定時(shí)操作,到達(dá)設(shè)置的時(shí)間即調(diào)用相關(guān)的函數(shù)。其中condition為標(biāo)識(shí)寵物狀態(tài)的flag,0為平常狀態(tài),1為點(diǎn)擊狀態(tài),這個(gè)狀態(tài)可按照自己的喜好拓展。talk_condition同理,為標(biāo)識(shí)寵物對(duì)話狀態(tài)的flag。

#?寵物正常待機(jī)動(dòng)作
def?petNormalAction(self):
????#?每隔一段時(shí)間做個(gè)動(dòng)作
????#?定時(shí)器設(shè)置
????self.timer?=?QTimer()
????#?時(shí)間到了自動(dòng)執(zhí)行
????self.timer.timeout.connect(self.randomAct)
????#?動(dòng)作時(shí)間切換設(shè)置
????self.timer.start(3000)
????#?寵物狀態(tài)設(shè)置為正常
????self.condition?=?0
????#?每隔一段時(shí)間切換對(duì)話
????self.talkTimer?=?QTimer()
????self.talkTimer.timeout.connect(self.talk)
????self.talkTimer.start(3000)
????#?對(duì)話狀態(tài)設(shè)置為常態(tài)
????self.talk_condition?=?0
????#?寵物對(duì)話框
????self.talk()

其中,通過(guò)randomAct實(shí)現(xiàn)寵物動(dòng)作的隨機(jī)切換,通過(guò)talk實(shí)現(xiàn)對(duì)話框內(nèi)容的切換,其代碼如下:

self.pet1和self.dialog在初始化的時(shí)候即定義了。這里可以按照自己的喜好進(jìn)行拓展,用多個(gè)if-else if實(shí)現(xiàn)多種狀態(tài)的切換和定義,增加一些喂食,玩耍動(dòng)作等。

#?隨機(jī)動(dòng)作切換
def?randomAct(self):
????#?condition記錄寵物狀態(tài),寵物狀態(tài)為0時(shí),代表正常待機(jī)
????if?not?self.condition:
????????#?隨機(jī)選擇裝載在pet1里面的gif圖進(jìn)行展示,實(shí)現(xiàn)隨機(jī)切換
????????self.movie?=?QMovie(random.choice(self.pet1))
????????#?寵物大小
????????self.movie.setScaledSize(QSize(200,?200))
????????#?將動(dòng)畫(huà)添加到label中
????????self.image.setMovie(self.movie)
????????#?開(kāi)始播放動(dòng)畫(huà)
????????self.movie.start()
????#?condition不為0,轉(zhuǎn)為切換特有的動(dòng)作,實(shí)現(xiàn)寵物的點(diǎn)擊反饋
????#?這里可以通過(guò)else-if語(yǔ)句往下拓展做更多的交互功能
????else:
????????#?讀取特殊狀態(tài)圖片路徑
????????self.movie?=?QMovie("./click/click.gif")
????????#?寵物大小
????????self.movie.setScaledSize(QSize(200,?200))
????????#?將動(dòng)畫(huà)添加到label中
????????self.image.setMovie(self.movie)
????????#?開(kāi)始播放動(dòng)畫(huà)
????????self.movie.start()
????????#?寵物狀態(tài)設(shè)置為正常待機(jī)
????????self.condition?=?0
????????self.talk_condition?=?0

#?寵物對(duì)話框行為處理
def?talk(self):
????if?not?self.talk_condition:
????????#?talk_condition為0則選取加載在dialog中的語(yǔ)句
????????self.talkLabel.setText(random.choice(self.dialog))
????????#?設(shè)置樣式
????????self.talkLabel.setStyleSheet(
????????????"font:?bold;"
????????????"font:25pt?'楷體';"
????????????"color:white;"
????????????"background-color:?white"
????????????"url(:/)"
????????)
????????#?根據(jù)內(nèi)容自適應(yīng)大小
????????self.talkLabel.adjustSize()
????else:
????????#?talk_condition為1顯示為別點(diǎn)我,這里同樣可以通過(guò)if-else-if來(lái)拓展對(duì)應(yīng)的行為
????????self.talkLabel.setText("別點(diǎn)我")
????????self.talkLabel.setStyleSheet(
????????????"font:?bold;"
????????????"font:25pt?'楷體';"
????????????"color:white;"
????????????"background-color:?white"
????????????"url(:/)"
????????)
????????self.talkLabel.adjustSize()
????????#?設(shè)置為正常狀態(tài)
????????self.talk_condition?=?0

5、實(shí)現(xiàn)能夠拖動(dòng)寵物,通過(guò)多個(gè)自帶函數(shù)實(shí)現(xiàn),其代碼配置如下:

實(shí)現(xiàn)寵物的拖動(dòng)主要通過(guò)三個(gè)函數(shù)實(shí)現(xiàn),mouserPressEvent負(fù)責(zé)在鼠標(biāo)點(diǎn)擊判斷其是否在寵物窗口上,如果在則將寵物和鼠標(biāo)的位置綁定,并執(zhí)行點(diǎn)擊改變寵物GIF圖和對(duì)話框的操作。

mouseMoveEvent實(shí)現(xiàn)按下后寵物跟著鼠標(biāo)移動(dòng)

mouseReleaseEvent將之前的鎖定取消

#?鼠標(biāo)左鍵按下時(shí),?寵物將和鼠標(biāo)位置綁定
def?mousePressEvent(self,?event):
????#?更改寵物狀態(tài)為點(diǎn)擊
????self.condition?=?1
????#?更改寵物對(duì)話狀態(tài)
????self.talk_condition?=?1
????#?即可調(diào)用對(duì)話狀態(tài)改變
????self.talk()
????#?即刻加載寵物點(diǎn)擊動(dòng)畫(huà)
????self.randomAct()
????if?event.button()?==?Qt.LeftButton:
????????self.is_follow_mouse?=?True
????#?globalPos()?事件觸發(fā)點(diǎn)相對(duì)于桌面的位置
????#?pos()?程序相對(duì)于桌面左上角的位置,實(shí)際是窗口的左上角坐標(biāo)
????self.mouse_drag_pos?=?event.globalPos()?-?self.pos()
????event.accept()
????#?拖動(dòng)時(shí)鼠標(biāo)圖形的設(shè)置
????self.setCursor(QCursor(Qt.OpenHandCursor))

#?鼠標(biāo)移動(dòng)時(shí)調(diào)用,實(shí)現(xiàn)寵物隨鼠標(biāo)移動(dòng)
def?mouseMoveEvent(self,?event):
????#?如果鼠標(biāo)左鍵按下,且處于綁定狀態(tài)
????if?Qt.LeftButton?and?self.is_follow_mouse:
????????#?寵物隨鼠標(biāo)進(jìn)行移動(dòng)
????????self.move(event.globalPos()?-?self.mouse_drag_pos)
????event.accept()

#?鼠標(biāo)釋放調(diào)用,取消綁定
def?mouseReleaseEvent(self,?event):
????self.is_follow_mouse?=?False
????#?鼠標(biāo)圖形設(shè)置為箭頭
????self.setCursor(QCursor(Qt.ArrowCursor))

6、實(shí)現(xiàn)寵物右鍵點(diǎn)擊具有交互功能,通過(guò)函數(shù)contextMenuEvent實(shí)現(xiàn),其代碼配置如下:

退出操作通過(guò) qApp.quit()實(shí)現(xiàn),直接退出相應(yīng)的QT程序。

隱藏操作則通過(guò)self.setWindowOpacity(0)實(shí)現(xiàn),這個(gè)可控制窗口的透明度。

#?寵物右鍵點(diǎn)擊交互
def?contextMenuEvent(self,?event):
????#?定義菜單
????menu?=?QMenu(self)
????#?定義菜單項(xiàng)
????quitAction?=?menu.addAction("退出")
????hide?=?menu.addAction("隱藏")
????#?使用exec_()方法顯示菜單。從鼠標(biāo)右鍵事件對(duì)象中獲得當(dāng)前坐標(biāo)。mapToGlobal()方法把當(dāng)前組件的相對(duì)坐標(biāo)轉(zhuǎn)換為窗口(window)的絕對(duì)坐標(biāo)。
????action?=?menu.exec_(self.mapToGlobal(event.pos()))
????#?點(diǎn)擊事件為退出
????if?action?==?quitAction:
????????qApp.quit()
????#?點(diǎn)擊事件為隱藏
????if?action?==?hide:
????????#?通過(guò)設(shè)置透明度方式隱藏寵物
????????self.setWindowOpacity(0)

7、鼠標(biāo)移到寵物上的時(shí)候顯示為閉合的手

#?鼠標(biāo)移進(jìn)時(shí)調(diào)用
def?enterEvent(self,?event):
????#?設(shè)置鼠標(biāo)形狀 Qt.ClosedHandCursor ??非指向手
????self.setCursor(Qt.ClosedHandCursor)

2.2.3 完整源碼

import?os
import?sys
import?random
from?PyQt5.QtGui?import?*
from?PyQt5.QtCore?import?*
from?PyQt5.QtWidgets?import?*
?
?
class?DesktopPet(QWidget):
????def?__init__(self,?parent=None,?**kwargs):
????????super(DesktopPet,?self).__init__(parent)
????????#?窗體初始化
????????self.init()
????????#?托盤(pán)化初始
????????self.initPall()
????????#?寵物靜態(tài)gif圖加載
????????self.initPetImage()
????????#?寵物正常待機(jī),實(shí)現(xiàn)隨機(jī)切換動(dòng)作
????????self.petNormalAction()
?
?
????#?窗體初始化
????def?init(self):
????????#?初始化
????????#?設(shè)置窗口屬性:窗口無(wú)標(biāo)題欄且固定在最前面
????????#?FrameWindowHint:無(wú)邊框窗口
????????#?WindowStaysOnTopHint:?窗口總顯示在最上面
????????#?SubWindow:?新窗口部件是一個(gè)子窗口,而無(wú)論窗口部件是否有父窗口部件
????????#?https://blog.csdn.net/kaida1234/article/details/79863146
????????self.setWindowFlags(Qt.FramelessWindowHint?|?Qt.WindowStaysOnTopHint?|?Qt.SubWindow)
????????#?setAutoFillBackground(True)表示的是自動(dòng)填充背景,False為透明背景
????????self.setAutoFillBackground(False)
????????#?窗口透明,窗體空間不透明
????????self.setAttribute(Qt.WA_TranslucentBackground,?True)
????????#?重繪組件、刷新
????????self.repaint()
?
????#?托盤(pán)化設(shè)置初始化
????def?initPall(self):
????????#?導(dǎo)入準(zhǔn)備在托盤(pán)化顯示上使用的圖標(biāo)
????????icons?=?os.path.join('tigerIcon.jpg')
????????#?設(shè)置右鍵顯示最小化的菜單項(xiàng)
????????#?菜單項(xiàng)退出,點(diǎn)擊后調(diào)用quit函數(shù)
????????quit_action?=?QAction('退出',?self,?triggered=self.quit)
????????#?設(shè)置這個(gè)點(diǎn)擊選項(xiàng)的圖片
????????quit_action.setIcon(QIcon(icons))
????????#?菜單項(xiàng)顯示,點(diǎn)擊后調(diào)用showing函數(shù)
????????showing?=?QAction(u'顯示',?self,?triggered=self.showwin)
????????#?新建一個(gè)菜單項(xiàng)控件
????????self.tray_icon_menu?=?QMenu(self)
????????#?在菜單欄添加一個(gè)無(wú)子菜單的菜單項(xiàng)‘退出’
????????self.tray_icon_menu.addAction(quit_action)
????????#?在菜單欄添加一個(gè)無(wú)子菜單的菜單項(xiàng)‘顯示’
????????self.tray_icon_menu.addAction(showing)
????????#?QSystemTrayIcon類(lèi)為應(yīng)用程序在系統(tǒng)托盤(pán)中提供一個(gè)圖標(biāo)
????????self.tray_icon?=?QSystemTrayIcon(self)
????????#?設(shè)置托盤(pán)化圖標(biāo)
????????self.tray_icon.setIcon(QIcon(icons))
????????#?設(shè)置托盤(pán)化菜單項(xiàng)
????????self.tray_icon.setContextMenu(self.tray_icon_menu)
????????#?展示
????????self.tray_icon.show()
?
????#?寵物靜態(tài)gif圖加載
????def?initPetImage(self):
????????#?對(duì)話框定義
????????self.talkLabel?=?QLabel(self)
????????#?對(duì)話框樣式設(shè)計(jì)
????????self.talkLabel.setStyleSheet("font:15pt?'楷體';border-width:?1px;color:blue;")
????????#?定義顯示圖片部分
????????self.image?=?QLabel(self)
????????#?QMovie是一個(gè)可以存放動(dòng)態(tài)視頻的類(lèi),一般是配合QLabel使用的,可以用來(lái)存放GIF動(dòng)態(tài)圖
????????self.movie?=?QMovie("normal/normal1.gif")
????????#?設(shè)置標(biāo)簽大小
????????self.movie.setScaledSize(QSize(200,?200))
????????#?將Qmovie在定義的image中顯示
????????self.image.setMovie(self.movie)
????????self.movie.start()
????????self.resize(1024,?1024)
????????#?調(diào)用自定義的randomPosition,會(huì)使得寵物出現(xiàn)位置隨機(jī)
????????self.randomPosition()
????????#?展示
????????self.show()
????????#?https://new.qq.com/rain/a/20211014a002rs00
????????#?將寵物正常待機(jī)狀態(tài)的動(dòng)圖放入pet1中
????????self.pet1?=?[]
????????for?i?in?os.listdir("normal"):
????????????self.pet1.append("normal/"?+?i)
????????#?將寵物正常待機(jī)狀態(tài)的對(duì)話放入pet2中
????????self.dialog?=?[]
????????#?讀取目錄下dialog文件
????????with?open("dialog.txt",?"r")?as?f:
????????????text?=?f.read()
????????????#?以\n?即換行符為分隔符,分割放進(jìn)dialog中
????????????self.dialog?=?text.split("\n")
?
????#?寵物正常待機(jī)動(dòng)作
????def?petNormalAction(self):
????????#?每隔一段時(shí)間做個(gè)動(dòng)作
????????#?定時(shí)器設(shè)置
????????self.timer?=?QTimer()
????????#?時(shí)間到了自動(dòng)執(zhí)行
????????self.timer.timeout.connect(self.randomAct)
????????#?動(dòng)作時(shí)間切換設(shè)置
????????self.timer.start(3000)
????????#?寵物狀態(tài)設(shè)置為正常
????????self.condition?=?0
????????#?每隔一段時(shí)間切換對(duì)話
????????self.talkTimer?=?QTimer()
????????self.talkTimer.timeout.connect(self.talk)
????????self.talkTimer.start(3000)
????????#?對(duì)話狀態(tài)設(shè)置為常態(tài)
????????self.talk_condition?=?0
????????#?寵物對(duì)話框
????????self.talk()
?
????#?隨機(jī)動(dòng)作切換
????def?randomAct(self):
????????#?condition記錄寵物狀態(tài),寵物狀態(tài)為0時(shí),代表正常待機(jī)
????????if?not?self.condition:
????????????#?隨機(jī)選擇裝載在pet1里面的gif圖進(jìn)行展示,實(shí)現(xiàn)隨機(jī)切換
????????????self.movie?=?QMovie(random.choice(self.pet1))
????????????#?寵物大小
????????????self.movie.setScaledSize(QSize(200,?200))
????????????#?將動(dòng)畫(huà)添加到label中
????????????self.image.setMovie(self.movie)
????????????#?開(kāi)始播放動(dòng)畫(huà)
????????????self.movie.start()
????????#?condition不為0,轉(zhuǎn)為切換特有的動(dòng)作,實(shí)現(xiàn)寵物的點(diǎn)擊反饋
????????#?這里可以通過(guò)else-if語(yǔ)句往下拓展做更多的交互功能
????????else:
????????????#?讀取特殊狀態(tài)圖片路徑
????????????self.movie?=?QMovie("./click/click.gif")
????????????#?寵物大小
????????????self.movie.setScaledSize(QSize(200,?200))
????????????#?將動(dòng)畫(huà)添加到label中
????????????self.image.setMovie(self.movie)
????????????#?開(kāi)始播放動(dòng)畫(huà)
????????????self.movie.start()
????????????#?寵物狀態(tài)設(shè)置為正常待機(jī)
????????????self.condition?=?0
????????????self.talk_condition?=?0
?
????#?寵物對(duì)話框行為處理
????def?talk(self):
????????if?not?self.talk_condition:
????????????#?talk_condition為0則選取加載在dialog中的語(yǔ)句
????????????self.talkLabel.setText(random.choice(self.dialog))
????????????#?設(shè)置樣式
????????????self.talkLabel.setStyleSheet(
????????????????"font:?bold;"
????????????????"font:25pt?'楷體';"
????????????????"color:white;"
????????????????"background-color:?white"
????????????????"url(:/)"
????????????)
????????????#?根據(jù)內(nèi)容自適應(yīng)大小
????????????self.talkLabel.adjustSize()
????????else:
????????????#?talk_condition為1顯示為別點(diǎn)我,這里同樣可以通過(guò)if-else-if來(lái)拓展對(duì)應(yīng)的行為
????????????self.talkLabel.setText("別點(diǎn)我")
????????????self.talkLabel.setStyleSheet(
????????????????"font:?bold;"
????????????????"font:25pt?'楷體';"
????????????????"color:white;"
????????????????"background-color:?white"
????????????????"url(:/)"
????????????)
????????????self.talkLabel.adjustSize()
????????????#?設(shè)置為正常狀態(tài)
????????????self.talk_condition?=?0
?
????#?退出操作,關(guān)閉程序
????def?quit(self):
????????self.close()
????????sys.exit()
?
????#?顯示寵物
????def?showwin(self):
????????#?setWindowOpacity()設(shè)置窗體的透明度,通過(guò)調(diào)整窗體透明度實(shí)現(xiàn)寵物的展示和隱藏
????????self.setWindowOpacity(1)
?
????#?寵物隨機(jī)位置
????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)
?
????#?鼠標(biāo)左鍵按下時(shí),?寵物將和鼠標(biāo)位置綁定
????def?mousePressEvent(self,?event):
????????#?更改寵物狀態(tài)為點(diǎn)擊
????????self.condition?=?1
????????#?更改寵物對(duì)話狀態(tài)
????????self.talk_condition?=?1
????????#?即可調(diào)用對(duì)話狀態(tài)改變
????????self.talk()
????????#?即刻加載寵物點(diǎn)擊動(dòng)畫(huà)
????????self.randomAct()
????????if?event.button()?==?Qt.LeftButton:
????????????self.is_follow_mouse?=?True
????????#?globalPos()?事件觸發(fā)點(diǎn)相對(duì)于桌面的位置
????????#?pos()?程序相對(duì)于桌面左上角的位置,實(shí)際是窗口的左上角坐標(biāo)
????????self.mouse_drag_pos?=?event.globalPos()?-?self.pos()
????????event.accept()
????????#?拖動(dòng)時(shí)鼠標(biāo)圖形的設(shè)置
????????self.setCursor(QCursor(Qt.OpenHandCursor))
?
????#?鼠標(biāo)移動(dòng)時(shí)調(diào)用,實(shí)現(xiàn)寵物隨鼠標(biāo)移動(dòng)
????def?mouseMoveEvent(self,?event):
????????#?如果鼠標(biāo)左鍵按下,且處于綁定狀態(tài)
????????if?Qt.LeftButton?and?self.is_follow_mouse:
????????????#?寵物隨鼠標(biāo)進(jìn)行移動(dòng)
????????????self.move(event.globalPos()?-?self.mouse_drag_pos)
????????event.accept()
?
????#?鼠標(biāo)釋放調(diào)用,取消綁定
????def?mouseReleaseEvent(self,?event):
????????self.is_follow_mouse?=?False
????????#?鼠標(biāo)圖形設(shè)置為箭頭
????????self.setCursor(QCursor(Qt.ArrowCursor))
?
?
????#?鼠標(biāo)移進(jìn)時(shí)調(diào)用
????def?enterEvent(self,?event):
????????#?設(shè)置鼠標(biāo)形狀?Qt.ClosedHandCursor???非指向手
????????self.setCursor(Qt.ClosedHandCursor)
?
????#?寵物右鍵點(diǎn)擊交互
????def?contextMenuEvent(self,?event):
????????#?定義菜單
????????menu?=?QMenu(self)
????????#?定義菜單項(xiàng)
????????quitAction?=?menu.addAction("退出")
????????hide?=?menu.addAction("隱藏")
????????#?使用exec_()方法顯示菜單。從鼠標(biāo)右鍵事件對(duì)象中獲得當(dāng)前坐標(biāo)。mapToGlobal()方法把當(dāng)前組件的相對(duì)坐標(biāo)轉(zhuǎn)換為窗口(window)的絕對(duì)坐標(biāo)。
????????action?=?menu.exec_(self.mapToGlobal(event.pos()))
????????#?點(diǎn)擊事件為退出
????????if?action?==?quitAction:
????????????qApp.quit()
????????#?點(diǎn)擊事件為隱藏
????????if?action?==?hide:
????????????#?通過(guò)設(shè)置透明度方式隱藏寵物
????????????self.setWindowOpacity(0)
?
?
if?__name__?==?'__main__':
????#?創(chuàng)建了一個(gè)QApplication對(duì)象,對(duì)象名為app,帶兩個(gè)參數(shù)argc,argv
????#?所有的PyQt5應(yīng)用必須創(chuàng)建一個(gè)應(yīng)用(Application)對(duì)象。sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表。
????app?=?QApplication(sys.argv)
????#?窗口組件初始化
????pet?=?DesktopPet()
????# 1. 進(jìn)入時(shí)間循環(huán);
????# 2. wait,直到響應(yīng)app可能的輸入;
????# 3. QT接收和處理用戶及系統(tǒng)交代的事件(消息),并傳遞到各個(gè)窗口;
????# 4. 程序遇到exit()退出時(shí),機(jī)會(huì)返回exec()的值。
????sys.exit(app.exec_())

三、程序打包

3.1 安裝pyinstaller

pip?install?pyinstaller?

如果提示黃色提示pip版本問(wèn)題,照著上面的提示修改即可。

3.2 項(xiàng)目目錄下完成打包

進(jìn)入打開(kāi)cmd命令行,進(jìn)入項(xiàng)目目錄,輸入命令

pyinstaller?-F?-w?main.py

打包完成后,在生成的dist里面可以看到main.exe文件。

將main.exe放到主目錄下就可正常運(yùn)行。

四、總結(jié)與參考資料

4.1 項(xiàng)目百度網(wǎng)盤(pán):

已經(jīng)將代碼和exe文件,打包。

DeskTopPetEXE為帶打包好的文件。

DeskTopPet是打包前的文件。

公眾號(hào)后臺(tái)回復(fù):桌面寵物,即可下載。

寫(xiě)之前挺開(kāi)心的,寫(xiě)的時(shí)候也挺開(kāi)心的,寫(xiě)完之后就有點(diǎn)索然無(wú)味了。

純粹是因?yàn)闊o(wú)聊寫(xiě)著玩的,下次再試試能不能弄個(gè)3D的。

·················END·················

推薦閱讀

?? ?我與身旁的美女,格格不入,我決定...?? ?請(qǐng)做好3年內(nèi)隨時(shí)失業(yè)的準(zhǔn)備?????該死,這糟糕的心動(dòng)感

瀏覽 37
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 人妻无码91| 99热激情在线| 国产A片精品| 久久精品小视频| 日韩操逼电影| www.99热视频| 刘玥精品A片在线观看| 亚洲网站在线观看| 91探花国产综合在线精品| 特级AV| 精品一区二区三区四区五区六区七区八区九区 | 亚洲AV无码成人精品久久久| caoporen| 欧美去干网| 日韩欧美精品一区二区| Av毛片| 伊人视频网| 日韩av三级在线观看| 伊人婷婷| 黄片亚洲| 成人片免费| 夜夜爽7777精品国产三级| 亚洲色婷婷久久精品AV蜜桃| 就去色色五月丁香婷婷久久久| 五月婷婷在线视频| 国产操比视频| 亚洲成人内射| 91中文字幕网| 无码在线播放视频| 伊人蕉 | 国产黄色A片| 91精品久久久久久粉嫩| 亚洲天堂网在线视频| 国产av播放| 操逼地址| 97精品人妻麻豆一区二区| 在线不卡免费Av| 久久婷婷秘精品日产538| 91人人妻人人澡人人爽| 91久久精品视频| av在线资源播放| 男人天堂无码视频| 国产福利合集| 亚洲人妻电影一区| 免费一级片| 国产精品无码怀孕软件| 骚逼综合| 色欲无码| 麻豆传媒在线播放| 午夜AV在线免费观看| 國產精品777777777| AAA久久久| 操综合| 欧美日逼小视频| 日韩在线视频观看| 日韩中文字幕AV| 黄片亚洲| 欧美丰满美乳XXⅩ高潮www| www.久久久| 亚洲污污| 亚洲一区二区免费视频| 婷婷色色五月| 国产成人内射| 先锋影音亚洲AV每日资源网站 | 另类老妇奶性BBWBBw| 中文字幕在线观看亚洲| 99久久精品国产一区色| 亚洲免费黄色| 蜜桃视频网站18| 欧美性夜黄A片爽爽免费视频| 青青草原网站在线观看| 午夜综合网| 久久久久亚洲AV无码网影音先锋| 综合久久视频| 色综合99久久久无码国产精品| 黄色免费福利视频| 亚洲免费观看高清视频| 天天噜噜色| 68久久久| 久热久| 国产人人干| 泄火熟妇2-ThePorn| 在线视频一区二区三区| 久久精品大香蕉| 亚洲AV秘无码苍井空| 青榴社区| 久久久91精品国产一区苍井空| 日韩无码视频网站| 丰满人妻一区二区三区免费 | 国产精品视频免费看| 在线观看成年人视频| 97香蕉网| 三级午夜在线无码| 大香蕉在线伊人| 色诱AV| 亚洲男人的天堂AV| 日B无码| 久久精品久久久久久久| 麻豆精品传媒2021md| 日日99| 一级黄色免费视频| 婷婷色六月| 91蝌蚪视频在线播放| 国产亚洲99久久精品熟女| 骚逼自拍| 伊人久久五月| 无码六区| 五月天婷婷成人| 大香蕉75在线| 一道AV| 人人操人人摸人人爽| 欧美老女人操逼视频| 国产熟妇码视频app| 天堂网av2025| 另类Av| chinese搡老熟老妇人| 久久精品免费电影| 91丨九色丨国产在线| 亚洲日韩欧美中在线| 黄色视频导航| 日韩高清无码片| 国产成人黄色| 欧美成人三级精品| 亚洲精品秘一区二区三小| 欧美性BBB槡BBB槡BBB| 91黑人| ww久久| 五月婷婷网站| 91资源在线观看| 亚洲香蕉在线观看| 午夜激情AV| 无码久久久| 天天操网站| 国产成人在线免费观看| 爽好紧别夹喷水无码| 91成人视频在线观看| 强伦轩人妻一区二区三区70后| 中文字幕观看| 麻豆91免费视频| 欧美视频综合网| 日韩无码破解| 爱爱亚洲| 免费黄网站在线观看| 麻豆成人精品| 精品无码人妻一区二区三区| 国产无遮挡又黄又爽| 操屄视频在线| 亚洲三级视频在线观看| 日韩A电影| 暖暖爱视频免费| 综合网伊人| 91在线观看视频| 国产欧美综合视频| 国产精品女人精品久久久天天 | 久操免费在线| 亚洲天堂AV2025| 操逼网123首页| 操逼网址大全| 蝌蚪久久| 男女视频91| 国产17c精品视频一二三区| 无码一区三区| 高清无码免费在线| 欧美成人视频18| 怡春院综合成人社区| 日韩网站在线| h成人在线| 中文字幕无码观看| 日本女人牲交视频| 青娱乐久久| 熟女人妻人蜜桃视频| 波多野结衣性爱视频| 中文字幕在线观看1| 婷婷色情网| 伊人网在线| 久久久久999| 国产一区二区免费| 91欧美在线| 中文字幕第5页| jizz亚洲| 日韩高清无码免费看| 免费无码国产在线怀| 日韩一区二区高清无码| 嫩草久久99www亚洲红桃| 欧美黄色成人网站| 欧美性爱免费网站| 五月丁香综合| 国产精品久久久久久久久久二区三区| 亚洲免费观看高清完整| 国产一区二三区| 又大又粗又爽| 亚洲人体视频| 色婷婷精品国产一区二区三区 | 青娱乐在线精品| AV高清无码在线| 日本欧美一级| 久草视频福利| 91成人免费视频| 人妻无码HEYZO少妇精品| 成人综合大香蕉| 亚洲精品秘一区二区三区影| 这里只有精品久久| 日韩综合色| 成人视频在线免费观看| 91丨PORNY丨在线中文| 91亚洲影院| 日B视频在线观看| 杨门女将婬乱史1—6| 国产精品福利小视频| 人人摸人人射| 一级片在线| 日韩大吊| 欧洲三级网观看| 国产麻豆性爱视频| 一本一道无码| 996热| 欧美成人午夜影院| 自拍啪啪| 日本免费在线观看| 操中国老女人| 国产欧美二区综合中文字幕精品一| 69久久成人精品| 欧美精品成人免费| 操少妇| 免费黄色在线观看| 97超碰在线视| 欧美成人无码一区二区三区| www.A片| 天天综合久久| 精品乱子伦一区二区三区下载| 成av人片一区二区三区久久| 人人爱天天做| 国产av激情| 欧美h| 日韩人妻系列| 日本高清不卡视频| 国产精品一区二区在线| 成人操B视频在线观看| 久久综合大香蕉| 安微妇搡BBBB搡BBBB| 极品一区| 亚洲国产精品一区二区三区| 欧美精品不卡| 欧美色视频在线观看| 日韩欧美网站| 精品乱子伦一区二区三区下载| 另类老妇性BBwBBw图片| 欧美三级电影在线观看| 国产精品久久久久久久久久| 蜜芽成人在线视频| 99精品全国免费观看| 俺来俺去| 国产精品无码永久免费A片 | 国内精品久久久久久久| 97无码人妻| 四虎在线视频观看96| 100国产精品人妻无码| 成人无码一区二区三区| 内射网站| 熟妇偷拍| 日韩无码操逼视频| 国产精品视频播放| 亚洲AV中文在线| 国产乱子伦-区二区三区熟睡91| 色婷婷大香蕉| 91成人免费电影片| 大蕉网| 日韩高清中文字幕| 88海外华人免费一区| 国产精品久久久久无码AV| 日韩AV中文字幕在线| 日韩一级A片| 日韩蜜桃视频| 日韩欧美操逼视频| 亚洲热热| A视频免费| 一道本无码在线播放| 亚洲图片欧美色图| 鸭子av| 欧美黄色片网站| 国产精品久久久久久久久久久免费看 | 日韩人妻精品一区二区| 坏男人内射老太太| 亚洲精品高清无码| 蜜柚Av| 免费黄色一级电影| 无码免费高清| 综合激情av| 性无码一区二区三区在线观看| 天堂在线免费视频| 伊人激情影院| 无码内射在线播放| 91成人亚洲| AV观看免费| 日本一区二区三区免费观看| 成人在线视频观看| 久久AV电影| 亚洲va视频| avav无码| 好逼天天有| 亚洲一区二区三| 少妇无码一区| 噜噜噜在线视频| 青草视频在线播放| 先锋影音一区| 日韩欧美V| 97一区二区| 欧美成人网址在线观看| 97超碰资源| 亚洲欧洲有码在线| 一插菊花网| 天堂中文网| 中文字幕免费一区| 精品少妇一区| 免费在线观看av| 丁香婷婷五月基地| 欧美日韩在线免费| av少妇| 日韩毛片一级| 中文字幕在线观看第一页| 一本之道高清数码大全| 天天肏屄| 久久国产精品在线| 国产精品免费观看久久久久久久久| 欧美成人无码片免费看A片秀色| 偷拍内射| 国产无套内射在线观看| 精品蜜桃一区内容| 中国特级毛片| 操逼导航| 国产精品视频色| 91av免费观看| 成人一区二区在线| 黄色毛片一级| 久久夜色精品噜噜亚洲AV| 青青草大香蕉伊人| 亚洲少妇视频| 青青草91在线| 精品国产乱码久久久久久郑州公司| 嫩草99| 四川婬妇BBw搡BBBB搡| 91亚洲精品久久久久蜜桃| 色天天干| 91久久久久| 人人操人人操人人操人人操| 无码精品人妻一区二区三刘亦菲| 黄色激情av| www.激情| 波多野结衣无码NET,AV | 精品成人电影| 狠狠se| 91AV| 在线观看中文字幕视频| 色丁香婷婷| 性爱视频亚洲| 蜜臀久久99精品久久久兰草影视 | 91人人干| 曰韩精品| 嫩草在线观看| 少妇搡BBBB搡BBB搡18禁| 婷婷午夜精品久久久久久性色AV| 伊人综合成人网| 九九碰九九爱97超碰| www、久久| 精品视频第一页| 人妻少妇偷人精品无码免费| 天天干天天日天天射| 欧美成人18| 亚洲AV综合网| 日本中文字幕在线| 亚洲AV成人网| 一区二区三区久久| 亚洲男人的天堂AV| 亚洲国产成人精品女人久久久| 大香蕉大香蕉网| 亚洲成人无码视频| 爱草在线| 色播五月天| 波多野结衣一二三区| 91视频一区| 国产熟女一区| 一见钟情的韩国电影| 无码福利导航| 狠狠躁夜夜躁人人爽人妻| 欧美特大黄| 伊人五月在线| 亚洲精品秘一区二区三小| 国产精品9999久久久久仙踪林| 97人妻精品一区二区三区图片| 久久婷婷色| 99热这里有精品| 欧美A在线观看| 操逼无码| 欧美午夜精品久久久久久3D| 懂色成人视频在线观看| 亚洲色偷精品一区二区三区| 亚洲黄色无码视频| 欧美VA| 黄色的视频网站| 狠狠干2021| 欧美成人福利视频| 日韩超碰在线| 先锋成人电影| 黄色A级毛片| 欧美插菊花综合网| 黄色视频网站在线观看| 怡春院久久| 人妻77777| 六月天婷婷| 中文无码高清在线| 欧美色图另类| 在线观看AV资源| 中文字幕精品视频| 老太婆擦BBBB撩BBBB| 人人摸人人干| 中文字幕福利视频| 国产免费av在线观看| www.91n| 黃色毛片A片AAAA级20| 日韩黄页网站| 亚洲黄色一级电影| 欧美日韩在线免费观看| 男人资源网| 国产精品色婷婷99久久精品| 91久久香蕉囯产熟女线看蜜桃| 伊人99在线| 18禁日韩| 大香蕉大香蕉网| 色色色色色色色色欧美| 99xxxxx| 久久艹精品视频| 无码人妻丰满熟妇| 天天操婷婷| 影音先锋一区二区| 无码内射在线播放| va色婷婷亚洲在线| 97色在线| www.久久精品视频| 日韩日逼| 婷婷久久网| 亚洲欧美日韩不卡| 东北嫖老熟女一区二区视频网站| 中文字幕巨肉乱码中文乱码| 黄片网址| 欧美Aⅴ| 亚洲天堂久久久| 操逼天堂| 久草视频免费看| 欧美色啪| 日韩精品网| 美日韩无码视频| A一级黄色| 亚洲日韩影院| 亚洲AV无码乱码国产精品| 黄片av| 男人的天堂亚洲| 大香蕉久久久久久久| 91精品人妻一区二区三区| 开心激情网五月天| 97这里只有精品| 国产综合久久777777麻豆| 久草高清视频| 免费AV在线| 亚洲国产成人91PORN| 天天久久毛片| 精品无码一区二区三区爱与| 免费无码av| 人人人人摸| 色接久久| 美腿丝袜中文字幕精品| 色婷婷中文在线| 大香伊人| 国产一区二区三区四区五区在线| 97av在线| 国产在线一区二区| 先锋影音中文字幕| 久久成人久久爱| 中文字幕色| 国产操美女| 亚洲精品福利视频导航| 亚洲综合伊人| 亚洲你懂的| 青青草在线观看视频| 吴梦梦《女教师时间暂停》| 国产免费a| 三级成人视频| 国产性爱电影网| 高清无码在线观看18| a√免费看| 超碰二区| 亚洲性爱在线观看| 艹逼免费视频| 亚洲欧美日韩成人| 丁香婷婷五月| 在线视频免费观看| 国产色婷婷精品综合在线播放| 国产激情综合五月久久| 美女操逼网站| 国产一级片免费视频| 成人免费观看的毛视频| 99热免费观看| 一级黄色视频片| 亚洲免费观看高清视频| 亚洲日本在线观看| 国产成人无码精品久在线观看| 操逼三级片| 无码高清| 三级片小说| 麻豆视频一区二区三区| 久热只有精品| 亚洲天堂免费视频| 思思操| 仓井空一区| 先锋影音亚洲AV每日资源网站 | 欧美性猛交XXXX乱大交蜜桃 | 欧美综合自拍| 亚洲欧美日韩无码| 538在线视频| 麻豆AV在线观看| 欧美性爱在线播放| 青娱亚洲| 日韩城人网站| 在线免费观看AV片| 日韩欧美中文字幕在线视频| 成人国产无码| 开心激情网站| 俺来也AV| 亚洲免费黄片| 69综合| 亚洲国产成人精品午夜| 韩日一级片| 国产一区二区成人久久919色| 另类老妇性BBwBBw图片| 尤物看片| 亚洲字幕| 一区二区高清视频| 99精品色| 嫩草嫩草69| 操逼网视频| 五月天黄色电影| 天天操b| 欧美日本中文字幕| 99精品99| 性爱精品视频| 国产性色| 秋霞中文字幕| 久久这里只有精品9| 1204手机看片| 99草自拍| 婷婷激情四射| 最新国产在线| 亚洲午夜av| 黄色av网站在线观看| 国产在线欧美在线白浆| 人人妻人人草| 妻子互换被高潮了三次| 99九九热| 456成人| 丁香激情视频| 夜夜骚精品人妻av一区| 国产一区二区三区免费视频| 亚洲欧美成人在线观看| 国产小黄片在线| 亚洲色成人网站www永久四虎 | 久久做爱视频| 欧美成人一级片| 免费v在线观看| 成人免费黄| 天天爽日日澡AAAA片| 美女网站在线观看| 色婷婷五月天在线观看| 国产精品久久久久久99| 成人毛片在线大全免费| 亚洲AV成人片色在线观看麻豆 | 中文字幕在线观看完整av| 在线观看免费无码视频| AAA三级片| 欧美射精视频| 黄色一级大片在线免费看产| 国产美女激情视频| 成人AV电影在线观看| 大香蕉福利导航| 亚洲无码专区在线| 特级婬片AAAAAAA级| 色婷婷久综合久久一本国产AV| 狠狠干B| 欧美99在线| 4虎亚洲人成人网www| 婷婷五月天中文字幕| 亚洲无码一级| 久久精品www人人爽人人| BBB搡BBB搡BBB搡BBB| TheAV精尽人亡av| 欧美操逼大全| 水果派解说A∨无码区| 欧美操屄视频| 大香蕉手机视频| 亚洲AV观看| 国产—a毛—a毛A免费看图| 中文字幕有码在线看| 俺也要操| 蜜桃性视频| 亚洲激情偷拍| 国产十欧洲十美国+亚洲一二三区在线午夜 | 国产精品欧美综合在线| 欧美日本国产| 91人人澡人人爽人人看| 无码福利电影| 欧美性受| 国产精品婷婷午夜在线观看| 北条麻妃JUX-869无码播放| 人人综合网| 伊人视频网| 六月婷婷五月天| 伊人在线成人视频| 丁香五月综合| 中文字幕亚洲有码| 人人妻人人澡人人爽人人DVD| 各种妇女撒尿mm毛免费网站| 激情操逼网| 久久久久久免费毛片精品| 丁香六月婷婷综合激情欧美| 中文字幕乱码中文乱码图片| 免费的AV网站| 翔田千里53歳在线播放| 先锋影音资源站av每日资源在线| 欧美成人视频。| 91日韩在线| 91久| 三级av在线| 波多野成人无码精品69| 又紧又嫩又爽无遮挡免费| www.精品视频| 最近中文字幕免费mv第一季歌词大全| 欧美va在线| 亚洲无码图片| 2025最新国产成人精品| 波多野结衣视频免费在线观看| 国产高清AV在线| 国产熟女AV| 国产精品欧美激情| 北条麻妃精品视频| 人成免费网站| 91麻豆精品91久久久久同性 | 91福利在线观看| 日本免费A片| 透逼视频| 天天干天天草| 丰满BBwBBwBBwBBW| 久久精品小视频| 操B无码| 91AV在线看| 亚洲综合免费观看高清| 国产一区二区三区免费视频| 7777影视电视剧在线观看官网 | 久9视频| av在线中文| 黄色视频导航| 日韩AV一区二区三区四区| 午夜黄色大片| 七十路の高齢熟女千代子下载 | 亚洲欧美在线视频免费| 欧美日韩一级二级三级| 老司机午夜免费精品视频| 国产乱子伦一区二区三区视频| 亚洲欧美日韩免费| 91网站在线免费观看| 久操香蕉| 成人性生交片无码免费看人 | 亚洲AV无码成人网站国产网站| 伊人三区| 成人三级黄色| 日韩一区二区三免费高清在线观看| 亚洲s在线| 波多野结衣成人网站| 婷婷激情丁香五月天| 国产欧美日韩综合| 免费一级婬片AAA片毛片A级| 无码在线视频免费观看| 思思热思思操免费视频| 日本一区二区网站| 成人午夜A片免费看| 无码精品一区二区三区在线观看 | 中文字幕日本成人| 国产又爽又黄A片| 欧美福利在线观看| 高清无码在线视频观看| 亚洲AV无码精品国产| 国产成人精品av在线观看| 亚洲精选中文字幕| 日韩中文字幕在线免费观看| 91亚洲精品在线观看| 亚洲A在线观看| 久青草资源福利视频| 午夜久久久久久久久久久久91| 一级黄色视频免费看| 中文最新天堂8√| 中文字幕一区二区三区四区五区六区| 中文AV字幕| 久草新在线| 国产精品扒开腿做爽爽爽A片唱戏| 夜夜骚av一区二区三区| 水蜜桃视频在线观看| 亚洲视频在线观看免费| 久久精品99久久久久久久久| 午夜做爱福利视频| 国产V精品| 国产在线观看97| 国产高清在线免费观看AV片| 欧美日韩视频免费观看| 蜜臀久久99久久久久久宅男| 久久亚洲AV成人无码国产野外| 久久久久a| 综合网插菊花| 十八毛片| 日韩无码www| 操逼亚洲| 97人妻精品一区二区三区| 婷婷五月天中文字幕| 99偷拍| 天天躁狠狠躁av| 狠狠操狠狠色| 欧美足交视频| 人妻少妇偷人精品久久| 麻豆91精品91久久久| 国产精品AV在线观看| 欧美一区二区三区精品| 色哟哟国产| 国产人成一区二区三区影院| 日韩人妻精品中文字幕| 一纹A片免费观看| 久久久18禁一区二区三区精品| 国产精品色呦呦| 无码欧精品亚洲日韩一区| 欧美午夜激情视频| 99热国产在线观看| 91视频免费播放| 亚洲综合免费观看高清完整版| 黄片大全在线观看| 大香蕉伊人在线视频| 国产在线欧美在线白浆| 亚洲午夜福利一区二区三区| 91丨PORN首页| 午夜亚洲精品| 狠狠躁日日躁夜夜躁A片小说免费| jizz国产精品| 熟妇在线观看| 天天综合久久| 亚州精品国产精品乱码不99勇敢 | 色草视频| 无码人妻熟妇| 波多野结衣av中文字幕| 日韩免费在线观看视频| 国产精品色哟哟| 免费看日韩视频| 少妇69p| 操操操操| 桃花岛tⅴ+亚洲品质| 91无码人妻一区二区| 国产福利一区二区| 久久99深爱久久99精品| 中文字幕免费在线观看| 国产综合亚洲精品一区二| 精品久久久久久亚洲| 东北操逼视频| 午夜福利影视| 超碰人人草| 午夜国产| 色婷婷久久久久swag精品| 1024香蕉视频| 色噜噜人妻av中文字幕| 亚洲成色A片77777在线小说| 国产精品久久久久久久久久九秃| 特级西西444WWW大精品视频 | 中文资源在线√8| 夜夜爽7777精品国产三级| 黄色一级视频网站| 免费在线A| 五月天婷婷丁香| 久久伊人春色| 伊大香蕉在线| 国产成人自拍视频在线观看| 黃色级A片一級片| 伊人网在线视频观看| 欧美人操逼一二区| 西西444WWW无码视频软件功能介绍| 一级二级三级毛片| 日韩操逼电影| 久久99老妇伦国产熟女| 色播五月天| 成人亚洲天堂| 国产激情一区二区三区| 三级片日韩| 日韩免费高清无码| mm131亚洲国产精品久久| 日本色五月| 2024AV在线| 怡红院欧美| 乱婬妺妺躁爽A片| 日韩中字无码黄片| 51福利导航| 黄色精品网站| 免费网站观看www在线观看| 99免费视频在线观看| 久操精品视频| 中文字幕+乱码+中文乱码视频在线观看| 久久精品苍井空免费一区二| 97人人草| 国产高清AV| 大香蕉伊人手机在线| 日韩AV乱伦| 国产免费a| AV中文在线| 国产又黄又大又粗的视频| 色色操| 亚洲无码精品久久| 91人妻人人澡人人爽| 国产精品探花熟女AV| 1000部毛片A片免费视频| 精品视频无码| 操B视频网站| 久久人妻无码| 俺也要操| 18禁黄色免费网站| 北条麻妃无码在线播放| 在线一级A片| 人人操狠狠操| 亚洲人成色777777无码| 日韩高清无码中文字幕| 手机看片福利一区二区| 国产18禁网站| 国产尤物视频| 国产黄片在线免费观看| 91av天堂| 成人性爱免费网站| 亚洲操逼逼| 欧美日本国产| 精品一本道| av中文无码| 91人妻无码精品一区二区| 国产激情欧洲在线观看一区二区三区| 躁BBB躁BBB躁BBBBBB日视频| 中文子幕免费毛片| 国产成人99久久亚洲综合精品 | 中文无码电影| 内射在线播放| 人妻少妇精品视频一区二区三区| 河南熟妇搡BBBB搡BBBB| 嫩BBB搡BBB槡BBB小号| 约操少妇| 日本AⅤ| 成年人A片| 波多野结衣无码在线| 51嘿嘿嘿国产精品伦理| 丁香五月天社区| 一级片在线观看视频| 成人国产AV网站| 亚洲少妇免费| 韩日一区二区| 免费做爱视频网站| 69成人在线电影| 中文字幕日韩av| 不雅一级| 日韩欧美成人网| 国产精品久久久精品cos| AV黄片| 熟女人妻人妻の视频| 国产香蕉精品视频| 婷婷五月中文字幕| AA片免费| 97AV人妻无码视频二区| 91精品久久香蕉国产线看观看| 在线国产黄色| 麻豆视频一区二区三区| 国产理论视频| 极品少妇视频| 国产精品不卡在线| 毛片视频免费观看| 人人妻人人操人人爱| 婷婷午夜精品久久久久久性色| 无码福利电影| 少妇无码一区| 国产毛片久久久久久久| 超碰在线观看91| 樱桃码一区二区三区| 国产成人自拍视频在线观看| 在线观看日本vs欧洲vs美洲| 国产精品系列视频| 99精品免费在线观看| 亚洲一区在线视频| 在线观看免费高清无码| 久久99精品久久久久久水蜜桃 | 一级黄色电影免费| 免费毛片+一区二区三区| 久久久国产精品人人片| 色色色色综合| 蜜桃视频无码| 欧美裸体视频| 国产9熟妇视频网站| 青青草AV|