久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

瀏覽:64日期:2022-08-03 11:52:43

PyQt5中信號與槽可以說是對事件處理機制的高級封裝,如果說事件是用來創(chuàng)建窗口控件的,那么信號與槽就是用來對這個控件進行使用的,比如一個按鈕,當我們使用按鈕時,只關心clicked信號,至于這個按鈕如何接受并處里鼠標點擊事件,然后在發(fā)射這個信號,則不關心,但是如果要重載一個按鈕,這時候就要關心了,比如可以改變它的行為:在鼠標按下時觸發(fā)clicked信號,而不是釋放時

PyQt5常見事件類型

pyqt是對Qt的封裝,qt程序是事件驅動的,它的每個動作都有幕后某個事件所觸發(fā),Qt事件類型有很多,常見的如下

鍵盤事件:按鍵的按下與松開 鼠標事件:鼠標指針的移動,鼠標按鍵的按下與松開 拖放事件:用鼠標進行拖放 滾輪事件:鼠標滾輪滾動 繪屏事件:重繪制屏幕的某些部分 定時事件:定時器到時 焦點事件:鍵盤焦點移動 進入和離開事件:鼠標指針移入Widget內(nèi),或者移出 移動事件:Widget的位置改變 大小改變事件:widget的大小改變 顯示和隱藏事件:widget顯示與隱藏 窗口事件:窗口是否為當前窗口

還有一些常見的qt事件,比如Socket事件,剪切板事件,字體改變事件,布局改變事件

使用事件處理的方法

pyqt提供如下5中事件處理和過濾的方法(有弱到強),其中只有前兩種方法使用最頻繁

1 、重新實現(xiàn)事件函數(shù)

比如mousePressEvent(),keyPressEvent(),paintEvent(),這是最常規(guī)的事件處理方法

2 、重新實現(xiàn)QObject.event()

一般用在pyqt沒有提供該事件的處理函數(shù)的情況下,即增加新事件時

3 、安裝事件過濾器

如果對QObject調(diào)用installEventFilter,則相當于為這個QObject安裝了一個事件過濾器,對于QObject的全部事件來說,它們都會先傳遞到事件過濾函數(shù)eventFilter中,在這個函數(shù)中,我們可以拋棄或者修改這些事件,比如對自己感興趣的事件使用自定義的處理機制,對其他事件采用默認的事件處理機制,由于這中方法會調(diào)用installEventFilter的所有QObject的事件進行過濾,因此如果要過濾的事件比較多,則會降低程序的性能

4 、在QApplication中安裝事件過濾器

這種方法比上一種更強大,QApplication的事件過濾器將捕獲所有的QObject事件,而且第一個獲得該事件,也就是說,在將事件發(fā)送給其他任何一個事件過濾器之前,都會發(fā)送給QApplication的事件過濾器

5 、重新實現(xiàn)QApplication的notify()方法

pyqt使用notify來分發(fā)事件,要想在任何事件處理器之前捕獲事件,唯一的方法就是重新實現(xiàn)QApplication的notify(),在實踐中,在調(diào)試才會用這中方法

PyQt5信號與槽事件處理經(jīng)典案例

import sysfrom PyQt5.QtCore import (QEvent, QTimer, Qt)from PyQt5.QtWidgets import (QApplication, QMenu, QWidget)from PyQt5.QtGui import QPainterclass Widget(QWidget): def __init__(self, parent=None): super(Widget, self).__init__(parent) #初始化數(shù)據(jù) #鼠標雙擊False self.justDoubleClicked = False #按鍵,輸出文本,提示消息為空 self.key = '' self.text = '' self.message = '' #設置窗口初始大小與位置 self.resize(400, 300) self.move(100, 100) #設置標題 self.setWindowTitle('Events') #定時器1秒后執(zhí)行槽函數(shù) QTimer.singleShot(1000, self.giveHelp) # 避免窗口大小重繪事件的影響,可以把參數(shù)0改變成3000(3秒),然后在運行,就可以明白這行代碼的意思。 def giveHelp(self): self.text = '請點擊這里觸發(fā)追蹤鼠標功能' # 重繪事件,也就是觸發(fā)paintEvent函數(shù)。 self.update() ’’’重新實現(xiàn)關閉事件’’’ def closeEvent(self, event): print('Closed') ’’’重新實現(xiàn)上下文菜單事件’’’ def contextMenuEvent(self, event): #實例化菜單,添加子菜單one two并附加快捷鍵功能,關聯(lián)槽函數(shù) menu = QMenu(self) oneAction = menu.addAction('&One') twoAction = menu.addAction('&Two') oneAction.triggered.connect(self.one) twoAction.triggered.connect(self.two) #如果message為空,執(zhí)行 if not self.message: #在菜單中添加一條分割線 menu.addSeparator() #添加自菜單three,關聯(lián)槽函數(shù) threeAction = menu.addAction('Thre&e') threeAction.triggered.connect(self.three) #菜單欄出現(xiàn)在鼠標的位置 menu.exec_(event.globalPos()) ’’’上下文菜單槽函數(shù)’’’ def one(self): self.message = 'Menu option One' self.update() def two(self): self.message = 'Menu option Two' self.update() def three(self): self.message = 'Menu option Three' self.update() ’’’重新實現(xiàn)繪制事件’’’ def paintEvent(self, event): text = self.text i = text.find('nn') if i >= 0: text = text[0:i] # 若觸發(fā)了鍵盤按鈕,則在文本信息中記錄這個按鈕信息。 if self.key: text += 'nn你按下了: {0}'.format(self.key) painter = QPainter(self) painter.setRenderHint(QPainter.TextAntialiasing) # 繪制信息文本的內(nèi)容 painter.drawText(self.rect(), Qt.AlignCenter, text) # 若消息文本存在則在底部居中繪制消息,5秒鐘后清空消息文本并重繪。 if self.message: #顯示給定坐標處的文本,坐標,對齊方式。文本內(nèi)容 painter.drawText(self.rect(), Qt.AlignBottom | Qt.AlignHCenter, self.message) #5秒鐘后觸發(fā)清空信息的函數(shù),并重新繪制事件 QTimer.singleShot(5000, self.clearMessage) QTimer.singleShot(5000, self.update) ’’’清空消息文本的槽函數(shù)’’’ def clearMessage(self): self.message = '' ’’’重新實現(xiàn)調(diào)整窗口大小事件’’’ def resizeEvent(self, event): self.text = '調(diào)整窗口大小為: QSize({0}, {1})'.format( event.size().width(), event.size().height()) self.update() ’’’重新實現(xiàn)鼠標釋放事件’’’ def mouseReleaseEvent(self, event): # 若鼠標釋放為雙擊釋放,則不跟蹤鼠標移動 if self.justDoubleClicked: self.justDoubleClicked = False # 若鼠標釋放為單擊釋放,則需要改變跟蹤功能的狀態(tài),如果開啟跟蹤功能的話就跟蹤,不開啟跟蹤功能就不跟蹤 else: # 單擊鼠標 self.setMouseTracking(not self.hasMouseTracking()) if self.hasMouseTracking():self.text = '開啟鼠標跟蹤功能.n' + '請移動一下鼠標!n' + '單擊鼠標可以關閉這個功能' else:self.text = '關閉鼠標跟蹤功能.n' + '單擊鼠標可以開啟這個功能' self.update() ’’’重新實現(xiàn)鼠標移動事件’’’ def mouseMoveEvent(self, event): #如果沒有鼠標雙擊,執(zhí)行 if not self.justDoubleClicked: # 窗口坐標轉換為屏幕坐標 globalPos = self.mapToGlobal(event.pos()) self.text = '''鼠標位置: 窗口坐標為:QPoint({0}, {1}) 屏幕坐標為:QPoint({2}, {3}) '''.format(event.pos().x(), event.pos().y(), globalPos.x(), globalPos.y()) self.update() ’’’重新實現(xiàn)鼠標雙擊事件’’’ def mouseDoubleClickEvent(self, event): self.justDoubleClicked = True self.text = '你雙擊了鼠標' self.update() ’’’重新實現(xiàn)鍵盤按下事件’’’ def keyPressEvent(self, event): self.key = '' if event.key() == Qt.Key_Home: self.key = 'Home' elif event.key() == Qt.Key_End: self.key = 'End' elif event.key() == Qt.Key_PageUp: if event.modifiers() & Qt.ControlModifier:self.key = 'Ctrl+PageUp' else:self.key = 'PageUp' elif event.key() == Qt.Key_PageDown: if event.modifiers() & Qt.ControlModifier:self.key = 'Ctrl+PageDown' else:self.key = 'PageDown' elif Qt.Key_A <= event.key() <= Qt.Key_Z: if event.modifiers() & Qt.ShiftModifier:self.key = 'Shift+' self.key += event.text() #如果key有字符,不為空,則繪制字符 if self.key: self.key = self.key self.update() #否則就繼續(xù)監(jiān)視這個事件 else: QWidget.keyPressEvent(self, event) ’’’重新實現(xiàn)其他事件,適用于PyQt沒有提供該事件的處理函數(shù)的情況,Tab鍵由于涉及焦點切換,不會傳遞給keyPressEvent,因此,需要在這里重新定義。’’’ def event(self, event): #如果有按鍵按下,并且按鍵是tab鍵 if (event.type() == QEvent.KeyPress and event.key() == Qt.Key_Tab): self.key = '在event()中捕獲Tab鍵' self.update() return True return QWidget.event(self, event)if __name__ == '__main__': app = QApplication(sys.argv) form = Widget() form.show() app.exec_()代碼解析

首先是類的建立,建立text和message兩個變量,使用painEvent函數(shù)把他們輸出到窗口中

update函數(shù)的作用是更新窗口,由于窗口更新過程中會觸發(fā)一次paineEvent函數(shù)(paintEvent是窗口基類QWidget的內(nèi)部函數(shù)),因此在本例中,update函數(shù)的作用等同于paintEvent函數(shù)

import sysfrom PyQt5.QtCore import (QEvent, QTimer, Qt)from PyQt5.QtWidgets import (QApplication, QMenu, QWidget)from PyQt5.QtGui import QPainterclass Widget(QWidget): def __init__(self, parent=None): super(Widget, self).__init__(parent) #初始化數(shù)據(jù) #鼠標雙擊False self.justDoubleClicked = False #按鍵,輸出文本,提示消息為空 self.key = '' self.text = '' self.message = '' #設置窗口初始大小與位置 self.resize(400, 300) self.move(100, 100) #設置標題 self.setWindowTitle('Events') #定時器1秒后執(zhí)行槽函數(shù) QTimer.singleShot(1000, self.giveHelp) # 避免窗口大小重繪事件的影響,可以把參數(shù)0改變成3000(3秒),然后在運行,就可以明白這行代碼的意思。 def giveHelp(self): self.text = '請點擊這里觸發(fā)追蹤鼠標功能' # 重繪事件,也就是觸發(fā)paintEvent函數(shù)。 self.update()

初始化運行結果如下

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

然后是重新實現(xiàn)窗口關閉事件與上下文菜單事件,主要影響message標量的結果,paintEvent負責把這個變量在窗口底部輸出

’’’重新實現(xiàn)關閉事件’’’ def closeEvent(self, event): print('Closed') ’’’重新實現(xiàn)上下文菜單事件’’’ def contextMenuEvent(self, event): #實例化菜單,添加子菜單one two并附加快捷鍵功能,關聯(lián)槽函數(shù) menu = QMenu(self) oneAction = menu.addAction('&One') twoAction = menu.addAction('&Two') oneAction.triggered.connect(self.one) twoAction.triggered.connect(self.two) #如果message為空,執(zhí)行 if not self.message: #在菜單中添加一條分割線 menu.addSeparator() #添加自菜單three,關聯(lián)槽函數(shù) threeAction = menu.addAction('Thre&e') threeAction.triggered.connect(self.three) #菜單欄出現(xiàn)在鼠標的位置 menu.exec_(event.globalPos()) ’’’上下文菜單槽函數(shù)’’’ def one(self): self.message = 'Menu option One' self.update() def two(self): self.message = 'Menu option Two' self.update() def three(self): self.message = 'Menu option Three' self.update()

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

繪制事件是代碼的核心事件,它的作用是時刻跟隨text和message這兩個變量的信息,并把text內(nèi)容繪制到窗口的中部,把message的內(nèi)容繪制到窗口的底部

’’’重新實現(xiàn)繪制事件’’’ def paintEvent(self, event): text = self.text i = text.find('nn') if i >= 0: text = text[0:i] # 若觸發(fā)了鍵盤按鈕,則在文本信息中記錄這個按鈕信息。 if self.key: text += 'nn你按下了: {0}'.format(self.key) painter = QPainter(self) painter.setRenderHint(QPainter.TextAntialiasing) # 繪制信息文本的內(nèi)容 painter.drawText(self.rect(), Qt.AlignCenter, text) # 若消息文本存在則在底部居中繪制消息,5秒鐘后清空消息文本并重繪。 if self.message: #顯示給定坐標處的文本,坐標,對齊方式。文本內(nèi)容 painter.drawText(self.rect(), Qt.AlignBottom | Qt.AlignHCenter, self.message) #5秒鐘后觸發(fā)清空信息的函數(shù),并重新繪制事件 QTimer.singleShot(5000, self.clearMessage) QTimer.singleShot(5000, self.update) ’’’清空消息文本的槽函數(shù)’’’ def clearMessage(self): self.message = ''

接下來是調(diào)整窗口大小事件

’’’重新實現(xiàn)調(diào)整窗口大小事件’’’ def resizeEvent(self, event): self.text = '調(diào)整窗口大小為: QSize({0}, {1})'.format( event.size().width(), event.size().height()) self.update()

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

實現(xiàn)鼠標釋放事件,若為雙擊釋放,則不跟隨鼠標移動,若為單擊釋放,則需要跟隨鼠標移動狀態(tài)進行更改,如果開啟跟蹤功能就跟蹤,否則就不跟綜

’’’重新實現(xiàn)鼠標釋放事件’’’ def mouseReleaseEvent(self, event): # 若鼠標釋放為雙擊釋放,則不跟蹤鼠標移動 if self.justDoubleClicked: self.justDoubleClicked = False # 若鼠標釋放為單擊釋放,則需要改變跟蹤功能的狀態(tài),如果開啟跟蹤功能的話就跟蹤,不開啟跟蹤功能就不跟蹤 else: # 單擊鼠標 self.setMouseTracking(not self.hasMouseTracking()) if self.hasMouseTracking():self.text = '開啟鼠標跟蹤功能.n' + '請移動一下鼠標!n' + '單擊鼠標可以關閉這個功能' else:self.text = '關閉鼠標跟蹤功能.n' + '單擊鼠標可以開啟這個功能' self.update()

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

實現(xiàn)鼠標移動事件

’’’重新實現(xiàn)鼠標移動事件’’’ def mouseMoveEvent(self, event): #如果沒有鼠標雙擊,執(zhí)行 if not self.justDoubleClicked: # 窗口坐標轉換為屏幕坐標 globalPos = self.mapToGlobal(event.pos()) self.text = '''鼠標位置: 窗口坐標為:QPoint({0}, {1}) 屏幕坐標為:QPoint({2}, {3}) '''.format(event.pos().x(), event.pos().y(), globalPos.x(), globalPos.y()) self.update() ’’’重新實現(xiàn)鼠標雙擊事件’’’ def mouseDoubleClickEvent(self, event): self.justDoubleClicked = True self.text = '你雙擊了鼠標' self.update()

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

實現(xiàn)鍵盤按下事件

’’’重新實現(xiàn)鍵盤按下事件’’’ def keyPressEvent(self, event): self.key = '' if event.key() == Qt.Key_Home: self.key = 'Home' elif event.key() == Qt.Key_End: self.key = 'End' elif event.key() == Qt.Key_PageUp: if event.modifiers() & Qt.ControlModifier:self.key = 'Ctrl+PageUp' else:self.key = 'PageUp' elif event.key() == Qt.Key_PageDown: if event.modifiers() & Qt.ControlModifier:self.key = 'Ctrl+PageDown' else:self.key = 'PageDown' elif Qt.Key_A <= event.key() <= Qt.Key_Z: if event.modifiers() & Qt.ShiftModifier:self.key = 'Shift+' self.key += event.text() #如果key有字符,不為空,則繪制字符 if self.key: self.key = self.key self.update() #否則就繼續(xù)監(jiān)視這個事件 else: QWidget.keyPressEvent(self, event)

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

重載tab鍵

’’’重新實現(xiàn)其他事件,適用于PyQt沒有提供該事件的處理函數(shù)的情況,Tab鍵由于涉及焦點切換,不會傳遞給keyPressEvent,因此,需要在這里重新定義。’’’ def event(self, event): #如果有按鍵按下,并且按鍵是tab鍵 if (event.type() == QEvent.KeyPress and event.key() == Qt.Key_Tab): self.key = '在event()中捕獲Tab鍵' self.update() return True return QWidget.event(self, event)

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

過濾器的使用

import sysfrom PyQt5 import Qtfrom PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *class EventFilter(QDialog): def __init__( self, parent=None ): super(EventFilter, self).__init__(parent) self.setWindowTitle(’事件過濾器’) #實例化并設置四個標簽文本 self.label1 = QLabel(’請點擊’) self.label2 = QLabel(’請點擊’) self.label3 = QLabel(’請點擊’) self.labelState = QLabel(’test’) #加載三個圖片 self.image1 = QImage(’imagescartoon1.ico’) self.image2 = QImage(’imagescartoon2.ico’) self.image3 = QImage(’imagescartoon3.ico’) self.width = 600 self.height = 300 #設置初始大小 self.resize(self.width, self.height) #使用事假過濾器 self.label1.installEventFilter(self) self.label2.installEventFilter(self) self.label3.installEventFilter(self) #設置窗口布局方式并添加控件 layoyt = QGridLayout(self) layoyt.addWidget(self.label1, 500, 0) layoyt.addWidget(self.label2, 500, 1) layoyt.addWidget(self.label3, 500, 2) layoyt.addWidget(self.labelState, 600, 1) def eventFilter( self, watched, event ): #對事件一的處理過濾機制 if watched == self.label1: if event.type() == QEvent.MouseButtonPress:mouseEvent = QMouseEvent(event)if mouseEvent.buttons() == Qt.LeftButton: self.labelState.setText(’按下鼠標左鍵’)elif mouseEvent.buttons() == Qt.MidButton: self.labelState.setText(’按下鼠標中間鍵’)elif mouseEvent.buttons() == Qt.RightButton: self.labelState.setText(’按下鼠標右鍵’)#轉換圖片大小transform=QTransform()transform.scale(0.5,0.5)tmp=self.image1.transformed(transform)self.label1.setPixmap(QPixmap.fromImage(tmp)) if event.type()==QEvent.MouseButtonRelease:self.labelState.setText(’釋放鼠標按鍵’)self.label1.setPixmap(QPixmap.fromImage(self.image1)) return QDialog.eventFilter(self,watched,event)if __name__ == ’__main__’: app=QApplication(sys.argv) dialog=EventFilter() app.installEventFilter(dialog) dialog.show() app.exec_()

運行效果如圖

python GUI庫圖形界面開發(fā)之PyQt5信號與槽事件處理機制詳細介紹與實例解析

代碼解析

下面的代碼意思是這個過濾器只對label1的事件進行處理,并且只處理它的鼠標按下事件和鼠標釋放事件

def eventFilter( self, watched, event ): #對事件一的處理過濾機制 if watched == self.label1: if event.type() == QEvent.MouseButtonPress:mouseEvent = QMouseEvent(event)if mouseEvent.buttons() == Qt.LeftButton: self.labelState.setText(’按下鼠標左鍵’)elif mouseEvent.buttons() == Qt.MidButton: self.labelState.setText(’按下鼠標中間鍵’)elif mouseEvent.buttons() == Qt.RightButton: self.labelState.setText(’按下鼠標右鍵’)#轉換圖片大小transform=QTransform()transform.scale(0.5,0.5)tmp=self.image1.transformed(transform)self.label1.setPixmap(QPixmap.fromImage(tmp)) if event.type()==QEvent.MouseButtonRelease:self.labelState.setText(’釋放鼠標按鍵’)self.label1.setPixmap(QPixmap.fromImage(self.image1)) #對于其他的情況會返回系統(tǒng)默認的處理方法 return QDialog.eventFilter(self,watched,event)

一下四行代碼的意思是如果按下這個鼠標鍵,就會對label1裝載的圖片進行縮放一半

#轉換圖片大小transform=QTransform()transform.scale(0.5,0.5)tmp=self.image1.transformed(transform)self.label1.setPixmap(QPixmap.fromImage(tmp))

在QApplication中安裝事件過濾器的使用也非常簡單,只需要修改倆個地方

        #使用事件過濾器

        # self.label1.installEventFilter(self)

        # self.label2.installEventFilter(self)

        # self.label3.installEventFilter(self)

if __name__ == ’__main__’: app=QApplication(sys.argv) dialog=EventFilter() app.installEventFilter(dialog) dialog.show() app.exec_()

運行效果是一樣的

好了,本文主要講解了PyQt5信號與槽事件處理機制詳細介紹與實例解析,更多關于PyQt5信號與槽的知識請查看下面的相關鏈接

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲免费网站 | 国产欧美日韩 | 国产一区二区三区91 | 中文字幕一区在线观看视频 | 精品视频网站 | 日日天天| 日韩在线观看一区 | 色噜噜色综合 | 成年无码av片在线 | 在线播放亚洲 | 色精品视频 | 国产精品国产三级国产aⅴ中文 | 九九精品免费视频 | 一级特黄aaa大片在线观看 | 久热官网 | 成人夜晚看av | www.一区二区| 插插插干干干 | 婷婷激情综合 | 国久久久 | 一区二区三区国产好的精 | 久久91久久久久麻豆精品 | 中文字幕在线观看 | 91久久久久久久久 | 日韩中文一区 | 国产精品成人在线 | 日韩在线不卡视频 | 日本一区二区不卡 | 一区在线免费 | 视频一区 中文字幕 | 亚洲成av人片在线观看 | 亚洲精品18 | 亚洲国产成人在线 | 日韩在线一区二区三区 | 亚洲午夜精品一区二区三区他趣 | 日韩视频中文字幕 | 天天草天天干天天 | 电家庭影院午夜 | 精品成人久久 | 欧美精品一区二区三区一线天视频 | 日韩高清国产一区在线 | 91精品国产一区二区 | 久久久国产精品 | www国产高清| 久久九 | 中文字幕欧美日韩 | 国产精品免费在线 | 成人在线网址 | 亚洲国产成人av好男人在线观看 | 狠狠的干 | 久久精品欧美 | 免费视频一区 | 在线视频这里只有精品 | 天天插狠狠插 | 亚洲综合色自拍一区 | 国产日韩av在线 | 天堂久久久久 | 一区亚洲 | 日本久久二区 | 男女羞羞视频免费观看 | 国产高清视频一区二区 | 久久久精品亚洲 | 久久精品国产一区二区电影 | 国产成人综合一区二区三区 | 欧美三级电影在线播放 | 亚洲成人一区二区三区 | 国产精品不卡视频 | 中文字幕最新在线 | 欧美一区二区三区免费 | 日韩av一区二区三区在线观看 | 国产精品s色 | 黄av在线| 拍拍无遮挡人做人爱视频免费观看 | 欧美日韩中文 | 91久久久久久久久久久久久久久久 | 一区久久 | 成人亚洲| 91中文字幕在线 | 成人精品一区二区三区中文字幕 | 日本免费在线视频 | 亚洲欧美日韩精品久久亚洲区 | 密室大逃脱第六季大神版在线观看 | 99国产精品久久久久久久 | 欧美一区二区三区精品 | 啪一啪操一操 | 日韩精品网站在线观看 | 一区二区三区国产 | 天天夜碰日日摸日日澡 | 亚洲精品影院在线 | 亚洲精久久 | 在线播放三级 | 国产高清在线a视频大全 | 欧美极品视频 | 亚洲精品第一页 | 日韩中文在线视频 | 国产a视频| 成人免费网站www网站高清 | 久久久精品网站 | 欧美亚洲国产日韩 | 欧美一级片免费在线观看 | 操操日| 国产一区二区在线电影 | 亚州男人天堂 | 精品亚洲一区二区三区在线观看 | 久久九| 欧美一区中文字幕 | 国产精品色哟哟哟 | 成人免费福利视频 | 国产精品成人在线 | 午夜欧美 | 九九热这里都是精品 | 国产精品二区一区二区aⅴ污介绍 | 青草青草久热精品视频在线观看 | 天天躁日日躁狠狠躁av麻豆 | 黄色网址大全在线观看 | 日韩免费一级 | 狠狠色综合色综合网络 | 中文字幕一区二区三区在线视频 | 国产一区二区三区四区在线观看 | 免费成人在线视频网站 | 日韩免费视频 | 免费一区二区三区 | 亚洲第1页 | 免费视频一区二区 | 亚洲国产一区视频 | 91精品视频在线播放 | 国产小视频在线观看 | 青青草超碰在线 | 国产玖玖 | 日韩午夜电影 | 亚洲免费观看视频 | 一道本一区二区三区 | 日韩精品视频在线 | 久久国 | 国产视频一区二区 | 一级黄色片欧美 | 国产一区二区视频在线观看 | 天天亚洲综合 | 一二三精品区 | 色站综合| 日韩特黄一级欧美毛片特黄 | 亚洲 成人 av| 久久亚洲一区二区三区四区五区高 | 亚洲成人毛片 | 在线播放亚洲 | 欧美日韩国产精品 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 男人的天堂久久 | 91在线看片 | 亚洲一区二区av | 亚洲乱码一区二区三区在线观看 | 亚洲91精品 | 欧洲美女7788成人免费视频 | 九九热在线视频 | 国产成人免费视频 | 91精品国产欧美一区二区 | 日韩欧美一级精品久久 | 日韩欧美黄色 | 精品欧美黑人一区二区三区 | 日p视频免费看 | 国产精品一区一区三区 | 日本不卡免费新一二三区 | www.av在线| 国产精品久久av | 午夜精品视频 | 国产成人精品久久二区二区91 | 国产欧美综合一区二区三区 | 亚洲精品粉嫩美女一区 | 午夜午夜精品一区二区三区文 | 不卡二区 | 一级欧美一级日韩 | 一级a性色生活片久久毛片波多野 | 中文字幕在线观看av | 亚洲精品乱码久久久久膏 | 免费大片在线观看网站 | 性视屏 | 亚洲毛片网站 | 国产精品久久久久久久一区探花 | 欧美一区二区三区电影 | 亚洲乱码一区二区三区在线观看 | 久久夜色精品国产 | 欧美成人一区二区三区片免费 | 日韩特黄一级欧美毛片特黄 | 狠狠的干 | 成人中文字幕在线 | 超碰97免费在线 | a级片在线观看 | 夜夜爽99久久国产综合精品女不卡 | 日本aⅴ毛片成人实战推荐 成人免毛片 | 日本一区二区三区免费观看 | 久久久久久久国产精品 | 亚洲国产精品久久久久秋霞蜜臀 | www.久久99 | 日韩久久久 | 久久一| 91爱爱| 亚洲国产精品久久久久秋霞蜜臀 | 成人在线观看免费视频 | 99久热在线精品视频观看 | 伊人免费视频二 | 国产一区二区三区久久 | 国产精品久久777777 | xnxx 日本19| www.avtt天堂网| 中文字幕视频 | 久久婷婷麻豆国产91天堂 | 日韩成人高清电影 | 91亚洲精品一区 | 一二三区字幕免费观看av | 国产区在线 | 欧美一级裸体视频 | 精品久久久久久久久久久 | 亚洲一区中文 | 麻豆精品久久久 | 日韩欧美在线视频播放 | 四虎新网站 | 国产精品一码二码三码在线 | 第一色站 | 免费视频一区二区三区在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品成人久久久久 | 国产一区二区三区四区三区 | 中文字幕影院 | 国产欧美综合一区二区三区 | 国产51人人成人人人人爽色哟哟 | 亚洲国产精品久久久久秋霞蜜臀 | 国产伊人av| 91九色porny首页最多播放 | 福利精品在线观看 | 国产成人午夜高潮毛片 | 中文字幕国产 | 婷婷欧美| 一区二区三区国产亚洲网站 | 欧美黄色片| 国产精品毛片一区二区在线看 | 国产三级日本三级美三级 | 免费一区二区三区 | 亚洲二区在线观看 | 亚洲精品乱码久久久久久 | 高清国产一区二区三区四区五区 | 日韩亚洲在线 | 日韩精品视频在线播放 | 欧美bbbxxx| 亚洲精品福利视频 | 午夜久久久 | 99久久99久久久精品色圆 | 色香蕉视频 | 欲色av | 亚洲欧美日韩在线一区二区三区 | 精品国产91亚洲一区二区三区www | 黑人巨大精品欧美黑白配亚洲 | 欧美一区二区三区在线观看视频 | 日韩av一区二区在线观看 | 亚洲精品系列 | 国内精品亚洲 | 91在线观看 | 久久999| 高清av在线 | 日本一区二区三区免费观看 | 国产77777| 91麻豆精品国产91久久久资源速度 | 久久亚洲视频 | 国产日韩欧美一区 | 亚洲一区二区三区中文字幕 | 欧美喷潮久久久xxxxx | 欧美一级高清在线 | 欧美一区不卡 | 国产精品国产精品国产专区不片 | 色吧av | 欧洲另类在线1 | 一区二区三区精品 | 一区二区三区免费在线 | 亚洲国产精品一区二区久久 | 欧美国产激情 | 亚洲成人一区二区 | 国产精品一区二区不卡 | 综合久久综合 | h片在线免费观看 | 日日操天天射 | 欧美一级特 | 国产精品亚洲视频 | 国产精品xxxx | 日韩一片 | 97免费在线观看视频 | 亚州综合一区 | 欧美日韩亚洲综合 | 亚洲第一区在线 | 伊人伊人 | 亚洲精品国产setv | 色综合免费视频 | 成人在线影视 | 免费成人在线电影 | 亚洲最大的黄色网 | 午夜看片在线观看 | 欧美精品在欧美一区二区少妇 | 欧美日韩在线精品 | 久久久精品国产 | 特级毛片 | 日本久久精品视频 | 四虎影院在线免费播放 | 99热福利| 亚洲每日更新 | 国产伦精品久久久一区二区三区 | 日本三级在线观看中文字 | 久久不色| 精品久久久久久久久久 | 久久综合久色欧美综合狠狠 | 爱爱免费视频网站 | 成人亚洲精品久久久久软件 | 最近中文字幕免费观看 | 香蕉成人啪国产精品视频综合网 | 久久久www | 国产91在线免费观看 | 欧美日本韩国一区二区三区 | 国产一级毛片电影 | 亚洲国产视频网站 | 日韩综合网 | 黄色大片网 | av黄色在线 | 国产一级片一区二区三区 | 久久夜色精品 | 青青久视频 | 91精品国产综合久久久蜜臀粉嫩 | 美女久久 | 国产免费拔擦拔擦8x高清在线人 | 国内精品一区二区 | 久久1区 | 免费午夜电影 | 日韩免费观看视频 | 69av.com| 在线观看你懂的网站 | 一区二区精品 | 久久成人免费观看 | 日韩成人在线网站 | 日韩精品一区二区三区在线播放 | 天天天插 | 日韩国产精品视频 | 在线免费国产 | 国产精品三级在线 | 中文字幕日韩欧美一区二区三区 | 在线观看毛片网站 | 国产老女人精品毛片久久 | 色五月激情五月 | 亚洲精品九九 | 午夜高清视频 | 美女视频黄的免费 | 四季久久免费一区二区三区四区 | 特级丰满少妇一级aaaa爱毛片 | 亚洲日韩欧美一区二区在线 | 91精品一区二区三区久久久久久 | 99成人| 久久av一区二区三区 | 成人av网站在线观看 | 久久成人免费视频 | 精品久久久久久国产 | 国产精品极品美女在线观看免费 | 国产一区二区免费 | 91天堂| 免费av在线网站 | 欧美国产日本一区 | 久久综合成人精品亚洲另类欧美 | 成人影院www在线观看 | 国产精品久久嫩一区二区 免费 | 色伊人久久 | 日韩精品免费在线观看 | 狠狠做深爱婷婷综合一区 | 欧美日韩一区二区视频在线观看 | 成人精品 | 亚洲一区二区三区四区 | 91色站 | 欧美国产日韩另类 | 成年人看的羞羞网站 | 国产一区二区三区色淫影院 | 免费av一区二区三区 | 成年人免费网站 | 欧美日韩一区电影 | 久久精品国产77777蜜臀 | 91久久精品一区二区二区 | 日韩超级大片免费看国产国产播放器 | 国产一区二区精品 | 亚洲男人天堂2024 | 日韩经典一区 | 亚洲精品国偷拍自产在线观看 | 精品一区二区三区四区 | 日韩精品一区二区三区四区五区 | 国产视频一区二区三区四区 | 91av爱爱 | 国产精品久久 | 国产成人精品午夜视频' | 日本精品一区二区三区在线观看视频 | 欧美精品福利视频 | 亚洲精品福利 | 黄色av网站在线观看 | 中文字幕av在线播放 | 欧美日韩在线第一页 | 在线观看免费视频黄 | 91高清视频在线观看 | 精品一区二区久久久久久久网站 | 九九热精品视频 | 高清久久 | 性色av一区二区三区 | 国产高清精| 日韩av免费在线观看 | 麻豆国产露脸在线观看 | 中文字幕91 | 欧美99| 久久久99精品免费观看 | 国产精品禁久久精品 | 91精品国产综合久久福利软件 | 国产精品永久 | 亚洲天堂男人 | 国产一区日韩在线 | 亚洲天堂一区二区 | 日韩精品 | 国产不卡视频在线观看 | 中文字幕一区二区在线观看 | 精品久久久网站 | 一本久久a久久精品亚洲 | 亚洲精品www | 免费黄色网址在线播放 | 国产精品成人在线观看 | 日韩视频一区 | 免费国产一区 | 欧美激情在线播放 | 国产精品国产成人国产三级 | 中文字幕1区| h视频网站在线 | 7777av| 亚洲人成人一区二区在线观看 | 午夜在线观看 | 国产欧美精品一区二区三区四区 | 国产精品永久在线观看 | 国产一区二区三区在线 | 在线观看毛片网站 | 一区二区日韩在线观看 | 中文字幕亚洲欧美精品一区四区 | 亚洲激情视频在线观看 | 亚洲一区二区中文字幕 | 99热精品在线 | 午夜男人免费视频 | 美女黄视频网站 | 成人精品在线 | 亚洲成人精品在线 | 色综合一区 | 欧美精品一区二区三区四区在线 | 九九热精品视频 | 美女福利视频 | 欧美二三区 | 欧美日韩在线观看视频 | 国产aⅴ| 日韩一区二区三区在线观看 | 日韩一区二区在线观看 | 免费毛片在线播放 | 免费成人在线电影 | 精品天堂| 两性午夜视频 | 国产一区亚洲二区三区 | 国产羞羞视频在线观看 | 国产精品视频一区二区三区 | 久久久久国产精品免费免费搜索 | 色十八 | 天堂在线网 | 亚洲小视频网站 | 亚洲一区二区在线 | 欧美日韩成人激情 | 欧美第一区 | 91午夜精品 | 精品无人乱码一区二区三区 | 成人在线观看免费视频 | 精品久久久久久久久久久久久久 | 黄色激情网站 | 成人黄色片在线观看 | 欧美hdfree性xxxx | 亚洲乱码一区二区三区在线观看 | 久久精品亚洲精品 | 国产免费高清 | 欧美高清一区 | 在线观看黄色大片 | 一区二区视频在线观看 | 精品久| 欧美精品久久久久久久久 | 亚洲精品久久久久久下一站 | 国产96视频| 日韩看片 | 伊人久久综合影院 | 日韩精品视频在线播放 | 91豆花视频 | 爱色区综合网 | 日韩在线资源 | 91电影在线 | 四虎免费紧急入口观看 | 黄频免费在线观看 | 亚洲嫩草| 草久av | 婷色综合 | 久操综合 | 亚洲无吗电影 | 久久99精品久久久久久久青青日本 | 久久蜜桃视频 | 欧美精品一区在线发布 | 精品国产第一国产综合精品 | 精品久久久中文字幕 | 色视频www在线播放国产人成 | 日韩视频欧美视频 | 国产精品1区2区 | www.99久 | 999久久久国产999久久久 | 三级视频在线观看 | 青青草免费在线视频 | 欧美日本韩国一区二区 | 亚洲一区二区在线视频 | 一级免费黄色免费片 | 日本三级中文在线电影 | 超碰人人爽 | 日本午夜精品 | 精品国产乱码久久久久久1区2区 | 欧美成年黄网站色视频 | 欧美精品久久久 | 亚洲 欧美日韩 国产 中文 | 国产黄色精品 | 日本精品一区二区三区在线观看视频 | 国产精品一区二 | 久久先锋| 福利精品在线观看 | 欧洲精品久久久 | 日韩一区二区三区在线 | 国产精品国色综合久久 | 亚洲精品乱码久久久久久蜜桃91 | 天堂综合网 | 成人av观看| 在线91 | 久久久久久亚洲精品 | 国产欧美久久一区二区三区 | 久久97视频 | 欧美日韩一区在线观看 | 男人天堂视频在线观看 | 在线区 | 国产电影一区二区 | 国产精品久久久久久久一区探花 | 亚洲激情av| 国产精品日产欧美久久久久 | 国产偷录视频叫床高潮对白 | 6080夜射猫| 国产女爽爽视频精品免费 | a视频在线观看 | 精品国产99 | 无码国模国产在线观看 | 最新日韩免费 | 欧美激情精品久久久久久免费 | 一区二区亚洲 | 91精品一区二区三区久久久久久 | 久久免费视频在线 | 色啪网站 | 国产91网 | 精品久久久久久 | 岛国免费 | 国产综合久久久久久鬼色 | 中文字幕日韩一区二区三区 | 亚洲香蕉在线观看 | 中文字幕_第2页_高清免费在线 | a级黄色毛片免费观看 | 龙珠z普通话国语版在线观看 | 999在线观看精品免费不卡网站 | 国产h片在线观看 | 日韩免费av一区二区 | 男人的天堂在线视频 | 精品视频网站 | 亚洲欧美国产精品专区久久 | 欧美xxxⅹ性欧美大片 | 精品国产一区二区三区成人影院 | 欧美一二三 | 久久一区二区三区四区 | 成人一区二区在线观看 | 亚洲精品www久久久 www.蜜桃av | 97久久久 | 国产成人在线网站 | 福利午夜| 色综合色 | 国产乱码精品一区二区三区中文 | 中文字幕91 | 久久久久国| 亚洲高清免费视频 | 狠狠色狠狠色综合网 | 成人片免费看 | 日韩一区二区三区在线视频 | 日韩欧美a级v片免费播放 | 欧美日本精品 | 日本精品一区二区三区视频 | 欧美精品影院 | 日韩精品一区二区三区在线播放 | 亚洲一二视频 | 国产精品美女久久久久久久久久久 | 二区免费视频 | 欧美精品成人一区二区三区四区 | 亚洲高清在线 | 免费国产黄网站在线观看视频 | 亚洲精品久久久一区二区三区 | 久久久精品一区二区三区 | 性视频一区二区 | 人人澡人人射 | 午夜小视频在线观看 | 久久成人在线视频 | 亚洲欧美日本在线 | 麻豆久久久9性大片 | 一a级毛片 | 精品久久久久久久久久久 | 久久久久无码国产精品一区 | 精品国产黄色片 | 一区二区三区 在线 | 中文字幕在线精品 | 国产精品国色综合久久 | 日韩成人在线视频 | 国产视频欧美 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产精品久久视频 |