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

一文詳解Python圖形界面框架:PyQt5

共 11899字,需瀏覽 24分鐘

 ·

2022-03-04 00:49

來源:錢魏Way

使用Python開發(fā)圖形界面的軟件其實并不多,相對于GUI界面,可能Web方式的應(yīng)用更受人歡迎。但對于像我一樣對其他編程語言你如C#或WPF來說未必不是一個好的工具。

常見GUI框架

  • PyQt5[1]Qt[2]是一個跨平臺的 C++圖形用戶界面庫。QT一度被諾基亞擁,后出售給芬蘭的軟件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一組Python模塊構(gòu)成。PyQt5本身擁有超過620個類和6000函數(shù)及方法。在可以運行于多個平臺,包括:Unix, Windows, and Mac OS。
  • Pyside6[3]:Pyside是QT公司官方提供的Python包,上一版本為Pyside2,對應(yīng)的是QT5,最新版命名規(guī)則進行了調(diào)整,更改為Pyside6,對應(yīng)的是QT6版本。由于官方出品的比較看好,缺點是發(fā)布比較晚,網(wǎng)上的資料沒有PyQt5多。
  • Tkinter[4]:Python內(nèi)置的GUI框架,使用TCL實現(xiàn),Python中內(nèi)嵌了TCL解釋器,使用它的時候不用安裝額外的擴展包,直接import,跨平臺。不足之處在于UI布局全靠代碼實現(xiàn),只有15種常用部件,顯示效果簡陋。
  • PySimpleGUI[5]:PySimpleGUI 是 Tkinter 一層包裝。使用 PySimpleGUI 實現(xiàn)自定義 GUI 所需的代碼量要比使用 Tkinter 直接編寫相同的 GUI 要少得多。
  • WxPython[6]:wxPython是Python語言對流行的wxWidgets跨平臺GUI工具庫的綁定。用得比較廣泛,跨平臺,C++編寫,文檔少,用戶可能就需要根據(jù)編程內(nèi)容對不同平臺中的GUI代碼做一些調(diào)整。遇到問題不好解決,代碼布局控件,不直觀。
  • Wax[7]:基于wxPython ,為克服wxPython的問題而制作的一個包。
  • Kivy[8]:主要針對多點觸控程序,智能手機平板等,也可以在沒有觸屏功能的系統(tǒng)上,全平臺支持(Windows, Linux, Mac OS X, Android and iOS.)使用Python和cython編寫,中文支持差,需要自己下載中文庫并且制定路徑。
  • BeeWare[9]:Write once. Deploy everywhere.需要與Kivy配合使用。
  • Toga[10]:一個使用Python開發(fā)原生APP的GUI工具包。Toga由一個具有共享接口的基礎(chǔ)組件庫組成,以簡化與平臺無關(guān)的GUI開發(fā)。Toga適用于Mac OS、Windows、Linux(GTK)以及Android和iOS等移動平臺。
  • Eel[11]:一個輕量的 Python 庫,用于制作簡單的類似于 Electron(但是比它更輕量) 的離線 HTML/JS GUI 應(yīng)用程序,并具有對 Python 功能(capabilities)和庫的完全訪問權(quán)限。
  • Flexx[12]:一個純 Python 工具包,用來創(chuàng)建圖形化界面應(yīng)用程序。其使用 Web 技術(shù)進行界面的渲染。你可以用 Flexx 來創(chuàng)建桌面應(yīng)用,同時也可以導(dǎo)出一個應(yīng)用到獨立的 HTML 文檔。因為使用純 Python 開發(fā),所以 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行。
  • pywebview[13]是圍繞 webview 組件的輕量型跨平臺包裝器(wrapper),它允許在其自己的本機 GUI 窗口中顯示 HTML 內(nèi)容。它使您可以在桌面應(yīng)用程序中使用 Web 技術(shù),同時盡最大可能隱藏使用瀏覽器構(gòu)建GUI的事實。
  • enaml[14]:一種能夠讓你用最小的努力就可以實現(xiàn)高質(zhì)量GUI界面的的Python框架,也是一種獨特的編程語言。enaml將聲明性語言與基于約束的布局系統(tǒng)結(jié)合在一起,使用戶可以輕松地定義靈活布局的UI。enaml應(yīng)用程序可以在任何支持Python和Qt的平臺上運行。

個人想法:太多學(xué)不完,先學(xué)PyQt5,原因是資料多,學(xué)友余力再學(xué)pyside6,最后看下PySimpleGUI,看能否解決一些簡單問題。

PyQt5簡介

PyQt是Qt框架的Python語言實現(xiàn),由Riverbank Computing開發(fā),是最強大的GUI庫之一。PyQt提供了一個設(shè)計良好的窗口控件集合,每一個PyQt控件都對應(yīng)一個Qt控件,因此PyQt的API接口與Qt的API接口很接近,但PyQt不再使用QMake系統(tǒng)和Q_OBJECT宏。

PyQt5提供GPL版和商業(yè)版證書,自由開發(fā)者可以使用免費的GPL許可,如果需要將PyQt用于商業(yè)應(yīng)用,則必須購買商業(yè)許可。

PyQt5特性如下:

  • 基于高性能的Qt的GUI控件集。
  • 能夠跨平臺運行在Linux、Window和Mac OS系統(tǒng)上。
  • 使用信號槽機制進行通信。
  • 對Qt庫進行完全封裝。
  • 可以使用成熟的IDE進行界面設(shè)計,并自動生成可執(zhí)行的Python代碼。
  • 提供一整套種類齊全的窗口控件。

PyQt5是由一系列Python模塊組成,有超過620個類,6000個函數(shù)和方法,主要模塊如下:

  • QtCore:包含了核心的非 GUI 的功能。主要和時間、文件與文件夾、各種數(shù)據(jù)、流、URLs、mime 類文件、進程與線程一起使用。
  • QtGui:包含了窗口系統(tǒng)、事件處理、2D 圖像、基本繪畫、字體和文字類。
  • QtWidgets:包含了一系列創(chuàng)建桌面應(yīng)用的 UI 元素。
  • QtMultimedia:包含了處理多媒體的內(nèi)容和調(diào)用攝像頭 API 的類。
  • QtBluetooth:包含了查找和連接藍牙的類。
  • QtNetwork:包含了網(wǎng)絡(luò)編程的類,這些工具能讓 TCP/IP 和 UDP 開發(fā)變得更加方便和可靠。
  • QtPositioning:包含了定位的類,可以使用衛(wèi)星、WiFi 甚至文本。
  • Enginio:包含了通過客戶端進入和管理 Qt Cloud 的類。
  • QtWebSockets:包含了 WebSocket 協(xié)議的類。
  • QtWebKit:包含了一個基 WebKit2 的 web 瀏覽器。
  • QtWebKitWidgets:包含了基于 QtWidgets 的 WebKit1 的類。
  • QtXml:包含了處理 xml 的類,提供了 SAX 和 DOM API 的工具。
  • QtSvg:提供了顯示 SVG 內(nèi)容的類,Scalable Vector Graphics (SVG) 是一種是一種基于可擴展標(biāo)記語言 (XML),用于描述二維矢量圖形的圖形格式(這句話來自于維基百科)。
  • QtSql:提供了處理數(shù)據(jù)庫的工具。
  • QtTest:提供了測試 PyQt5 應(yīng)用的工具。

PyQt5的安裝

由于后期要使用fbs進行打包,fbs對Python 3.7以后的版本可能存在兼容問題,所以我選擇了Python 3.6.8進行了整個環(huán)境的搭建。主要內(nèi)容為:Python + PyCharm + PyQt5

安裝PyQt5

pip?install?pyqt5

pip?install?pyqt5-tools

其中pyqt5-tools為Qt Designer拖拽式的界面設(shè)計工具。安裝過程中可能會報如下錯誤:

qt5-tools?5.15.2.1.2?has?requirement?click~=7.0,?but?you'll?have?click?8.0.1?which?is?incompatible.

解決方案:

pip?install?click~=7.0

Qt Designer的配置

Qt Designer 是通過拖拽的方式放置控件,并實時查看控件效果進行快速UI設(shè)計。


整個畫面的構(gòu)成:

  • 左側(cè)的“Widget Box”就是各種可以自由拖動的組件
  • 中間的“MainWindow – untitled”窗體就是畫布
  • 右上方的”O(jiān)bject Inspector”可以查看當(dāng)前ui的結(jié)構(gòu)
  • 右側(cè)中部的”Property Editor”可以設(shè)置當(dāng)前選中組件的屬性
  • 右下方的”Resource Browser”可以添加各種素材,比如圖片,背景等等

最終生成.ui文件(實質(zhì)上是XML格式的文件),可直接使用,也可以通過pyuic5工具轉(zhuǎn)換成.py文件。

QtDisigner配置

在Pycharm中,依次打開 File – Settings – Tools – External Tools,點擊 + Create Tool,配置如下:

Name:?QtDisigner

Program?:?D:\Program?Files\Python36\Lib\site-packages\qt5_applications\Qt\bin\designer.exe?#?請根據(jù)實際修改

Working?directory:?$FileDir$

PyUIC配置

PyUIC主要是把Qt Designer生成的.ui文件換成.py文件。

在Pycharm中,依次打開 File – Settings – Tools – External Tools,點擊 + Create Tool,配置如下:

Name:?PyUIC

Program?:?D:\Program?Files\Python36\python.exe?#?當(dāng)前Python目錄,請根據(jù)實際修改

Arguments:?-m?PyQt5.uic.pyuic?$FileName$?-o?$FileNameWithoutExtension$.py

Working?directory:?$FileDir$

PyRCC配置

PyRCC主要是把編寫的.qrc資源文件換成.py文件。

在Pycharm中,依次打開 File – Settings – Tools – External Tools,點擊 + Create Tool,配置如下:

Name:?PyRCC

Program:?D:\Program?Files\Python36\pyrcc5.exe?#?當(dāng)前rcc工具目錄,請根據(jù)實際修改

Arguments:?$FileName$?-o?$FileNameWithoutExtension$_rc.py

Working?directory:?$FileDir$

PyQt5使用示例

創(chuàng)建一個空白的界面:

import?sys

from?PyQt5.QtWidgets?import?QApplication,?QMainWindow,?QLabel

app?=?QApplication(sys.argv)

win?=?QMainWindow()

win.setGeometry(400,?400,?400,?300)

win.setWindowTitle("Pyqt5?Tutorial")

win.show()

sys.exit(app.exec_())


其中:

  • Qapplication():每個GUI都必須包含一個Qapplication,argv表示獲取命令行參數(shù),如果不用獲取,則可以使用[]代替。
  • QMainWindow():類似一個容器(窗口)用來包含按鈕、文本、輸入框等widgets。arg標(biāo)識可以獲取命令行執(zhí)行時的參數(shù)。
  • SetGeometry是用來定義 QMainWindow() 窗口的尺寸, 語法:setGeometry(x, y, width, height ),其中x,y為屏幕上的坐標(biāo)點。
  • show():用來顯示窗口
  • exit(app.exec_()):設(shè)置窗口一直運行指導(dǎo)使用關(guān)閉按鈕進行關(guān)閉

PyQt5支持的常見Widgets有:


從上到下,從左到右依次為:Qlabel、QcomboBox、QcheckBox、QradioButton、QpushButton、QtableWidget、QlineEdit、Qslider、QProgressBar

對于使用Pyqt5設(shè)置文本內(nèi)容,我們使用Qlabel:

import?sys

from?PyQt5.QtWidgets?import?QApplication,?QMainWindow,?QLabel

app?=?QApplication(sys.argv)

win?=?QMainWindow()

win.setGeometry(400,?400,?400,?300)

win.setWindowTitle("Pyqt5?Tutorial")

\#?Label?Text

label?=?QLabel(win)

label.resize(200,?100)

label.setText("Hi?this?is?Pyqt5")

label.move(100,?100)

win.show()

sys.exit(app.exec_())


按鈕與事件:

import?sys

from?PyQt5.QtWidgets?import?QApplication,?QMainWindow,?QPushButton

def?click():

????print("Hy?Button?is?clicked!")

app?=?QApplication(sys.argv)

win?=?QMainWindow()

win.setGeometry(400,?400,?400,?300)

win.setWindowTitle("Pyqt5?Tutorial")

\#?Button

button?=?QPushButton(win)

button.resize(200,?100)

button.setText("Hi!?Click?Me")

button.move(100,?100)

button.clicked.connect(click)

win.show()

sys.exit(app.exec_())


button.clicked.connect() 在按鈕點擊后執(zhí)行特定的事件。

PyQt5實戰(zhàn)

實戰(zhàn)項目:簡易的天氣查詢軟件

1、使用Qt Designer設(shè)計一個界面


用到的控件有Button, GroupBox, Label,ComboBox,TextEdit,同時定義了兩個按鈕queryBtn及clearBtn,分別用來查詢及清空天氣數(shù)據(jù)。我們需要綁定槽函數(shù),方法如下:

  • 在Qt Designer右下角選擇 信號/槽編輯器,點擊+號新增
  • 分別選擇queryBtn及clearBtn,選擇信號 clicked(), 接收者 Dialog 及槽 accept(),(槽函數(shù)這里不知道如何定義,后期在代碼里再進行修改)

以上完成后保存為Weather.ui文件。

2、轉(zhuǎn)換.ui文件為.py文件

PyQt5支持直接使用.ui文件:

import?sys

from?PyQt5?import?QtWidgets,?uic

app?=?QtWidgets.QApplication(sys.argv)

window?=?uic.loadUi("mainwindow.ui")

window.show()

app.exec()

但是為了更好的自定義及修改上面的槽函數(shù),可以使用External Tools – PyUIC,即可生成Weather.py,實際運行命令如下:

D:\Program?Files\Python36\python.exe?-m?PyQt5.uic.pyuic?Weather.ui?-o?Weather.py

其中,我們需要把兩個按鈕綁定的槽函數(shù):

\#?self.queryBtn.clicked.connect(Dialog.accept)

\#?self.clearBtn.clicked.connect(Dialog.accept)

\#?修改為:

self.queryBtn.clicked.connect(Dialog.queryWeather)

self.clearBtn.clicked.connect(Dialog.clearText)

最終的Weather.py內(nèi)容如下:

\#?-*-?coding:?utf-8?-*-

\#?Form?implementation?generated?from?reading?ui?file?'Weather.ui'

\#

\#?Created?by:?PyQt5?UI?code?generator?5.15.4

\#

\#?WARNING:?Any?manual?changes?made?to?this?file?will?be?lost?when?pyuic5?is

\#?run?again.??Do?not?edit?this?file?unless?you?know?what?you?are?doing.

from?PyQt5?import?QtCore,?QtGui,?QtWidgets

class?Ui_Dialog(object):

????def?setupUi(self,?Dialog):

????????Dialog.setObjectName("Dialog")

????????Dialog.resize(600,?600)

????????self.groupBox?=?QtWidgets.QGroupBox(Dialog)

????????self.groupBox.setGeometry(QtCore.QRect(30,?20,?551,?511))

????????self.groupBox.setObjectName("groupBox")

????????self.label_2?=?QtWidgets.QLabel(self.groupBox)

????????self.label_2.setGeometry(QtCore.QRect(20,?30,?31,?16))

????????self.label_2.setObjectName("label_2")

????????self.comboBox?=?QtWidgets.QComboBox(self.groupBox)

????????self.comboBox.setGeometry(QtCore.QRect(70,?30,?87,?22))

????????self.comboBox.setObjectName("comboBox")

????????self.comboBox.addItem("")

????????self.comboBox.addItem("")

????????self.comboBox.addItem("")

????????self.textEdit?=?QtWidgets.QTextEdit(self.groupBox)

????????self.textEdit.setGeometry(QtCore.QRect(20,?70,?491,?411))

????????self.textEdit.setObjectName("textEdit")

????????self.queryBtn?=?QtWidgets.QPushButton(Dialog)

????????self.queryBtn.setGeometry(QtCore.QRect(490,?560,?93,?28))

????????self.queryBtn.setObjectName("queryBtn")

????????self.clearBtn?=?QtWidgets.QPushButton(Dialog)

????????self.clearBtn.setGeometry(QtCore.QRect(30,?560,?93,?28))

????????self.clearBtn.setObjectName("clearBtn")

????????self.retranslateUi(Dialog)

????????self.clearBtn.clicked.connect(Dialog.clearText)

????????self.queryBtn.clicked.connect(Dialog.queryWeather)

????????QtCore.QMetaObject.connectSlotsByName(Dialog)

????def?retranslateUi(self,?Dialog):

????????_translate?=?QtCore.QCoreApplication.translate

????????Dialog.setWindowTitle(_translate("Dialog",?"Dialog"))

????????self.groupBox.setTitle(_translate("Dialog",?"城市天氣預(yù)報"))

????????self.label_2.setText(_translate("Dialog",?"城市"))

????????self.comboBox.setItemText(0,?_translate("Dialog",?"北京"))

????????self.comboBox.setItemText(1,?_translate("Dialog",?"蘇州"))

????????self.comboBox.setItemText(2,?_translate("Dialog",?"上海"))

????????self.queryBtn.setText(_translate("Dialog",?"查詢"))

????????self.clearBtn.setText(_translate("Dialog",?"清空"))

3、調(diào)用MainDialog

在MainDialog中調(diào)用界面類Ui_Dialog,然后在其中中添加查詢天氣的業(yè)務(wù)邏輯代碼,這樣就做到了界面顯示和業(yè)務(wù)邏輯的分離。新增demo.py文件, 在MainDialog類中定義了兩個槽函數(shù)queryWeather()和clearText(),以便在界面文件Weather.ui中定義的兩個按鈕(queryBtn 和clearBtn) 觸發(fā)clicked 信號與這兩個槽函數(shù)進行綁定。

完整代碼如下:

import?sys

import?Weather

from?PyQt5.QtWidgets?import?QApplication,?QDialog

import?requests

class?MainDialog(QDialog):

????def?__init__(self,?parent=None):

????????super(QDialog,?self).__init__(parent)

????????self.ui?=?Weather.Ui_Dialog()

????????self.ui.setupUi(self)

????def?queryWeather(self):

????????cityName?=?self.ui.comboBox.currentText()

????????cityCode?=?self.getCode(cityName)

????????r?=?requests.get(

????????????"https://restapi.amap.com/v3/weather/weatherInfo?key=f4fd5b287b6d7d51a3c60fee24e42002&city={}".format(

????????????????cityCode))

????????if?r.status_code?==?200:

????????????data?=?r.json()['lives'][0]

????????????weatherMsg?=?'城市:{}\n天氣:{}\n溫度:{}\n風(fēng)向:{}\n風(fēng)力:{}\n濕度:{}\n發(fā)布時間:{}\n'.format(

????????????????data['city'],

????????????????data['weather'],

????????????????data['temperature'],

????????????????data['winddirection'],

????????????????data['windpower'],

????????????????data['humidity'],

????????????????data['reporttime'],

????????????)

????????else:

????????????weatherMsg?=?'天氣查詢失敗,請稍后再試!'

????????self.ui.textEdit.setText(weatherMsg)

????def?getCode(self,?cityName):

????????cityDict?=?{"北京":?"110000",

????????????????????"蘇州":?"320500",

????????????????????"上海":?"310000"}

????????**return**?cityDict.get(cityName,?'101010100')

????def?clearText(self):

????????self.ui.textEdit.clear()

if?__name__?==?'__main__':

????myapp?=?QApplication(sys.argv)

????myDlg?=?MainDialog()

????myDlg.show()

????sys.exit(myapp.exec_())

運行demo.py并執(zhí)行查詢后的效果:


4、將代碼打包成exe文件

將.py文件打包成可執(zhí)行的exe在Python中稱為freezing,常用的工具有:PyInstaller, py2exe, cx_Freeze, bbfreze, py2app等。功能對比:


  • py2exe:軟件更新已經(jīng)不活躍,因此也就略過。
  • pyinstaller:明確支持win8、win10、理論上支持win7,,支持apple Macos, linux。pyinsaller可以打包成文件夾形式內(nèi)含exe入口執(zhí)行文件的形式,也可以是一個單獨的exe文件。
  • fbs[15]:基于PyInstaller,使用起來更加方便

這里選擇了fbs來打包。fbs的安裝方法:

pip?install?fbs


使用方法,在命令行中輸入:

fbs?startproject

執(zhí)行完成后需要輸入一些APP的名稱等。完成后會生成如下目錄:


將剛才編寫的PyQt5的代碼(demo.py和Weather.py)拖到src/main/python文件夾下,刪除原有的main.py,并將demo.py修改為main.py。然后打開 main.py,在文件頭部添加如下代碼:

from?fbs_runtime.application_context.PyQt5?import?ApplicationContext

完成后執(zhí)行:

fbs?freeze

即可實現(xiàn)打包。生成的exe可執(zhí)行文件在\target\MyApp文件下。

參考資料

[1]

PyQt5: https://riverbankcomputing.com/software/pyqt/intro

[2]

Qt: https://www.qt.io/

[3]

Pyside6: https://doc.qt.io/qtforpython/index.html

[4]

Tkinter: https://wiki.python.org/moin/TkInter

[5]

PySimpleGUI: https://github.com/PySimpleGUI/PySimpleGUI

[6]

WxPython: https://wxpython.org/

[7]

Wax: https://pypi.org/project/wax/

[8]

Kivy: https://kivy.org/#home

[9]

BeeWare: https://beeware.org/

[10]

Toga: https://github.com/pybee/toga

[11]

Eel: https://github.com/ChrisKnott/Eel

[12]

Flexx: https://github.com/zoofIO/flexx

[13]

pywebview: https://github.com/r0x0r/pywebview/

[14]

enaml: https://github.com/nucleic/enaml

[15]

fbs: https://build-system.fman.io/pyqt5-tutorial


作者:錢魏Way

https://www.biaodianfu.com/pyqt5.html


加入知識星球【我們談?wù)摂?shù)據(jù)科學(xué)】

500+小伙伴一起學(xué)習(xí)!








·?推薦閱讀?·

盤點2021最佳數(shù)據(jù)可視化作品

「Python實用秘技04」pdf文件批量添加文字水印

新一代Python包管理工具來了


瀏覽 94
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 超碰人人操97| 国产毛片一区二区三区| 农村一级婬片A片| 在线视频一区二区三区| h片网站在线观看| 国产精品操逼网站| 亚洲高清中文字幕| 3344gc在线观看入口| 日韩十八禁网站| 西西444WWW无码大胆在线观看 | 中文字幕你懂的在线三级| 夜夜狠狠躁日日躁| 高清无码专区| 九九久久精品视频| 欧美99在线| 大香蕉福利视频| 安徽妇搡BBBB搡BBBB| 免费国产成人看片在线| 日韩高清无码成人| 黄色伊人| 青娱乐亚洲自拍| 国产操逼免费视频| 国产成人精品免高潮在线观看| 国产精品可站18| 操逼网站免费| 专业操老外| 在线观看国产小视频| 色五月亚洲| 美日韩视频欧美一区二区视频| 91小仙女jK白丝袜呻吟| 中文无码一区二区三区| 动漫啪啪视频| 日韩AV成人无码久久电影| 男同人到爽无套狂欢| 夜夜操影院| 成人婷婷| 亚州高清无码视频| 无码免费在线观看视频| 成人在线日韩| 瘦精品无码一区二区三区四区五区六区七区八区 | 51成人网站免费| 国产又爽又黄免费网站在线看| 就要干就要操| 91亚洲国产成人精品一区二区三 | 久久精品国产精品| 99re国产视频| 深夜av| 3d动漫一区二区| 无码内射视频| 高清无码三级| 国产综合精品久久久久成人AV| 西西特级WWW444无码| 男女性爱视频网站| 国产精品成人3p一区二区三区| 九九色综合| 天天av天天av天天爽| 国产视频一区二区三区四区五区| 精品无码人妻一区二区三区| 操逼短视频| 欧美大鸡巴视频| 五月天av在线观看| 97无码视频| 亚洲综合免费观看高清| 男人天堂色| 老司机一区二区三区| 中文字幕精品1| AV成人无码| av天堂电影网| 亚洲九九在线| 最新中文字幕观看| 日韩成人电影| 久久影音先锋| 一本一道久久| 人妻精品一区二区| 欧美色操| 中文字幕乱码中文字幕| 亚洲AV无码成人精品区在线欢看| 黄色A级视频| 久久免费视频网站| 亚洲熟妇在线观看| 午夜国产在线视频| 日屄在线观看| 亚洲区综合| 翔田千里被操120分钟| 久久久三级| 亚洲无码av在线播放| 日韩av毛片| 日韩性爱AV| 日韩成人三级| 五月天乱伦小说| 久久婷婷五月综合伊人| 99久久伊人| 69国产精品视频免费观看| 天天色天天撸| 欧美色图色就是色| 久婷婷| 超碰在线网| 四虎在线观看视频| 六月丁香久久| 无码成人毛片| 国内无码精品| 亚洲成人无码片| 欧洲肥胖BBBBBBBBBB| 女人自慰网站在线观看| 伊人狼人香蕉| 国产精品美女| 日本天堂Tv视频在线观看| 天天爽夜夜爽| 三级A片| 亚洲AV秘无码一区二三月夜| 97一区二区| 国产成人亚洲日韩| 日韩欧美视频| 日韩激情视频| 日韩TV| 日本高清视频九区| 男人av网站| 先锋影音一区二区三区| 国产人成视频免费观看| 91天天综合在线| 广西少妇BBwBBwBBw| 成人黄片在线免费观看| 久操新在线| 麻豆黄色电影| 亚洲欧美日韩免费| 日本少妇高潮喷水XXXXXXX| 二区三区在线观看| 欧美久久性爱视频| 免费欧美成人网站| 天天舔九色婷婷| 精品一区二区免费| 无码免费在线观看视频| 婷婷午夜精品久久久久久| 欧美日韩精品一区二区三区视频播放 | 成人短视频在线观看| 91免费高清视频| 日韩三级片无码| 国产豆花视频| 国产高清视频在线播放| 国产AV无码成人精品区| 四季AV综合网站| 残忍另类BBWBBWBBW| 婷婷久久久久| 国产1区2区3区| 国产一级a爱做片免费☆观看| 中文字幕日韩在线视频| 人人妻人人澡人人爽人人欧美一区 | 男女操逼免费观看| 成人无码小电影| 亚洲a在线视频| 豆花视频无码| 免费毛片在线| 真人无码| 青青青草视频在线| 国产精品午夜福利| 亚洲国产高清视频| 欧美日逼| 日本一节片在线播放| 任你爽在线视频| 91一区二区在线播放精品| 91艹艹| 成人天堂一区二区三区| 欧美特级视频| 精品一区二区三区视频| 热久久免费| 99热在线观看精品免费| 91狠狠| 俺去俺来也www色视频| 亚洲秘无码一区二区三区欧美| 日本韩国叼嘿片| 亚州AV天堂| 欧美A片在线免费观看| 一区二区免费在线观看| 一本色道综合久久欧美日韩精品 | 激情小视频在线观看| 国产黄片一区二区| 亚洲黄色视频网站在线观看| 99热电影| 天天撸天天操| 成人午夜福利| 日本久久高清| 欧美黄色站| V天堂在线视频| 日韩在线视频第一页| 亚洲成人电影一区| 欧美成人在线视频网站| 亚洲成人网在线| 午夜精品18| 五月天激情网站| 国产又粗又长又硬黄色一级片| 毛片av在线| 成人免费啪啪视频| 东方av在线免费观看| 日本一本不卡| 欧美在线一区二区| 全部视频午夜寂寞| 亚洲国产视频在线观看| 在线不卡无码| 欧美国产综合在线| 骚妇大战黑人15P| 内射极品美女| 无码一区二区三区四区五区| 久久黄色毛片| 先锋AV资源站| 国产午夜精品一区二区| 亚洲第1页| 日批视频网站| 国产精品天天AVJ精麻传媒| 欧美一级黄片免费看| 自拍三级| 伊人性爱网| 免费在线看黄网站| 午夜福利av电影| 少妇AAA级久久久无码精品片| 亚洲成人在线免费| 懂色av蜜臀av粉嫩av分享| 国产一二三| 91网站18| 国产人妻中文字幕| 亚洲一本之道| 专业操老外| 五月丁香婷婷综合| 中文无码字幕视频| 天堂在线网| 911精品国产一区二区在线 | 国产欧美综合视频| 天天做天天日| 日韩大片在线观看| 91精品久久香蕉国产线看观看| 18禁在线播放| 狠狠香蕉| 91久九九| 大香蕉伊人网站| 香蕉综合网| 91蜜桃传媒| www.一级片| 日韩乱伦中文字幕| 玖玖爱国产| 黄网站在线观看| 亚洲日本中文字幕在线| 亚洲秘av无码一区二区| 91狠狠综合久久久久久| 亚洲国产熟妇综合色专区| 一本久久综合亚洲鲁鲁五月天| 伊人黄色电影| 日韩va中文字幕无码免费| 狼人综合网| 午夜狠狠操| 一区二区三区四区五区无码| 色伊人| 91视频成人版一区二区| 骚逼免费观看| AV在线一区二区| 婷婷色在线| www黄片视频| 国产无遮挡又黄又爽又色视频| 欧美久久精品| 啪啪啪免费网站| 操B视频在线播放| 精品蜜桃秘一区二区三区在线播放 | 伊人久久久久久久久久久| 欧美自拍视频在线| 成人性爱AV| 另类色| 校园春色av| 2025天天操| 99视频在线免费观看| 337P大胆粉嫩银噜噜噜| 国产一级AV片| 日本三级片在线| 日韩最新高清无码| 亚洲乱伦电影| 免费在线观看黄色视频| 高清无码操逼视频| 国产在线免费视频| 99在线免费观看| 久久精品三级视频| 麻豆一区二区三区四区| 欧美在线天堂| 亚洲视频A| 熟睡侵犯の奶水授乳在线| 日韩在线视频免费观看| 91在线电影| 12一15女人A片毛| 韩国成人啪啪无码高潮| 中文字幕无码精品三级在线欧美| 精品人妻一区二区三区在线视频不卡 | 亚洲专区在线| 五月天婷婷乱伦| 牛牛在线精品视频| 成人无码一区二区三区| 青误乐在线播放| 中文字幕AV网| 一级黄色a片| 日韩一级电影在线| 久久婷婷国产麻豆91天堂| 成人一级视频| 国产精品久久久久久最猛| 日韩欧美成人网站| 久久99九九| 亚洲日逼网站| 蜜桃91精品秘成人取精库| 丰满人妻一区二区免费看| 无码专区亚洲| 国内老熟妇对白HDXXXX| 91丝袜足交| 日韩夜夜操| 激情欧美| 青青无码视频| 精品人妻一区二区蜜桃视频| 激情小视频国产在线播放| AV偷拍| 黃色一级A片一級片| AV电影天堂网| 无卡无码| 国产主播精品| 真人无码| 少妇在线观看| 蜜桃传媒在线播放| 一本色道久久综合无码欧美| 青青热视频| 日韩毛片一级| 亚洲午夜视频| 国产激情视频网站| 日韩人妻无码一区二区三区99 | 色射影院| 日韩大片在线观看| 三洞齐开Av在线免费观看| 精品成人影视| www.麻豆网91成人久久久| 丁香婷婷在线| 日逼A片| 亚洲三级自拍| 国产精品欧美一区二区| 狼友在线视频| 91无码人妻精品1国产四虎| 91人人干| 精精国产| ww国产| 亚洲无码A区| 欧美人妻激情| 天天摸天天添| 亚洲无码色| 2025AV中文字幕| 亚洲AV播放| 国产色婷婷| 亚洲日韩免费| 久草社区| 日韩精品小电影| 91天天干| 欧美日韩一区二区在线| 欧美一级婬片免费视频黄| 啊啊啊在线| 色播婷婷五月天| 四虎午夜福利| 中文字幕国产在线| 无码人妻精品一区二区三区温州| 国产棈品久久久久久久久久九秃| 国产中文字幕AV| 欧美亚洲三级| 成人网肏逼视频| 国产AV无| 懂色AV| 四虎麻豆| 欧美国产日韩综合在线观看170 | av在线一区二区| 超碰人人人| 亚洲视频中文字幕| 日日操天天| 人人妻人人操人人| 在线不卡无码| 亚洲综合一区二区| 欧美色图在线观看视频| 久久精品成人电影| 黄色一级电影网| 在线看黄色片| 欧美一二三| 国产一区二区三区免费播放| 黄色成人大片| 黄色成人在线视频| 亚洲一区二区久久| 伊人网综合| 狠狠躁日日躁夜夜躁A片男男视频 精品无码一区二区三区蜜桃李宗瑞 | 成人在线网| 中文字幕免费MV第一季歌词| 欧美一级在线观看| 中国免费XXXX18| 99草自拍| 少妇搡BBBB搡BBB搡造水多 | 黑人干亚洲| 懂色av蜜臀av粉嫩av分享| 黄色免费在线观看网站| 国产精品无码天天爽视频| 安徽妇搡BBBB搡BBB| 东京热av在线| 免费视频久久久| 日本无码电影| 天天色粽合合合合合合合| 国产激情在线视频| 麻豆做爱| 久久黄色视| 青青操网站| 五月天黄色电影网站| 伊人久久大香线蕉av一区| 国语偷拍| 青青草超碰| 刘玥一区二区| www.91av| 一级A片亲子乱中文| 亚洲天堂av在线免费观看| 亚洲电影中文字幕| 中文字幕无码免费| 久草这里只有精品| 日本三级片网址| 日本少妇午夜福利| 国产V视频| 强开小嫩苞毛片一二三区| 亚洲国产精品久久久| 欧美日皮| 国产一区二区三区在线| 亚洲女人在线| 色狠狠AV| 亚洲av中文| 1区2区视频| 木下凛凛子AV888AV在线观看| 国产熟女一区二区| 怕怕怕视频| 国模吧一区| 午夜免费小视频| 亚洲色图15p| 欧美日韩一二| 超碰P| 乱子伦国产精品| 天天日夜夜拍| 国产在线成人视频| 性V天堂| 亚洲色图第一页| 久久肏| 老妇槡BBBB槡BBBB槡| 日本色五月| 福利视频网站| 人人爽人人操人人| 五月天婷婷国产| 国产精品永久| 男人的天堂青青草| 欧美一级黄色性爱视频| 99久久久国产精品无码| 免费看黄色的网站| 亚洲一区二区在线| 国产成人精品av| 午夜福利av电影| 500部大龄熟乱4K视频| 成人无码日韩精品| 国产女人18毛片水真多18 | 蜜桃Av噜噜一区二区三区四区| 青娱乐AV| 亚洲乱码日产精品BD在线观看| 九九热99视频| 欧美一级二级三级| 亚洲偷拍网| 欧美成人A片AAA片在线播放| 国产小视频在线观看| 3344在线观看免费下载视频| 人人摸人人看人人| 亚洲性爱在线| 日韩a级片| 国产精品小电影| 国产在线观看免费成人视频| 无码人妻精品一区二区三区99仓| 色综合99久久久无码国产精品| 亚洲AV无码A片在线观看蜜桃| Japanese在线观看| 色欲色欲一区二区三区| 日韩A片一级无码免费蜜桃| 亚洲三级黄色视频| 久久久久久久艹| 日韩一级一片| 麻豆国产精品一区| 亚洲精品一区二区三区无码电影| 国产成人97精品免费看片| 日本无码视频在线观看| 无码人妻丰满熟妇精品| 亚洲三级片免费观看| 丰滿老婦BBwBBwBBw| 黄色大片免费在线观看| 久草视频在线免费播放| 伊人久久福利视频| 一级成人A片| 亚洲AV黄色| 无码成人毛片| 久久久精品电影| 日韩精品一区二区三区中文在线| 中国a一片一级一片| 手机看片午夜福利网| 欧美日韩性爱| 亚洲成人无码精品| 久草视频新| 欧美视频在线观看| 成人三级片免费| 国产中文字幕av| 亚洲九九在线| 欧美一级片在线观看| 婷婷性爱五月天| 成人精品福利| 欧美日韩在线观看一区| 日本天堂网| 免费欧美A片| 久久综合大香蕉| 欧美不卡在线播放| 成人国产精品| 九九视频免费观看| 懂色av蜜臀av粉嫩av分| 蜜桃久久久久久久| 欧美成人高清| jk在线观看| 亚洲精品操逼| 成人水蜜桃| 青春草在线视频| 国产成人亚洲综合A∨婷婷| 亚洲精品一区二区三区四区五区六区| 激情黄色毛片| 91成人在线视频| 在线中文无码| 国产无码小视频| 五月激情久久| 激情人妻在线| 亚洲第二页| 色婷婷在线无码精品秘人口传媒| 人妻精品免费| 亚欧综合在线| 懂色av| 欧美操操| 777视频在线观看| 国产一区二三区| 强开小嫩苞毛片一二三区| 亚洲精品无码在线观看| 操逼影视| 黄页网址在线观看| 国产精品无码激情| 超碰P| www.zaixianshipin| 久久伊人网站| 亚洲成人三级| v天堂| 狠狠91| 中文字幕无码毛片| 99在线精品视频| 免费黄色成人视频| 成年人在线观看视频网站| 中文字幕在线永久| 99久久人妻精品免费二区| 38D蜜桃臀| 中文字幕在线日韩| 性爱无码网站| 强奸乱伦五月天| 经典三级在线视频| 四川BBB搡BBB爽爽爽欧美| 久久久久久精品国产三级| 亚洲网站在线| 黄骗免费网站| 九九热re99re6在线精品| 边添小泬边狠狠躁视频| 黑人粗大无码| 人妻少妇偷人精品无码免费| 激情五月天网站| 黄色A片在线观看| 粉嫩av懂色av蜜臀av熟妇| 日韩a在线观看| 久久亚洲热| 精品國產一區二區三區久久蜜月| 国产激情视频在线观看| 色色看片| 嫩草视频在线观看| 国产精品国产三级国产专区53| 男女性爱视频网站| 91美女操逼视频| 中文字幕的色| 手机AV在线| 日韩一区无码| 精品久久精品| 国产又粗又长视频| 大地av| 香蕉国产在线| 91丨豆花丨国产极品| 亚洲成人少妇老妇a视频在线| 午夜熟睡乱子伦视频| 香蕉91视频| 青娱乐AV在线| 日韩三级av| 五月天精品视频| 日韩av免费在线| 大香蕉伊人手机在线| 欧美大香蕉伊人网| 无码视频在线播放| 中国女人操逼视频| 国产又粗又长的视频| 一区二区视频在线| 激情五月婷婷丁香| 操逼二区| 免费人成视频在线| 中文字幕免费av| 午夜福利免费在线观看| 欧美日韩中字| 亚洲草比视频网| 国产无码内射| 91精品久久久久久| 少妇特黄A一区二区三区| 日本欧美亚洲| 色老板最新网址| 亚洲天堂AV网| 亚洲视频在线免费看| 日韩欧美一级二级| 国产成人三级视频| 熟女伦乱| 色小哥| 亚洲高清无码在线观看视频| 成人操B视频在线观看| 大香蕉现在视频中心一| 无码高清在线播放| 日韩无码国产精品| 中文丰满亲子伦| 欧美午夜福利在线观看| 亚洲无码成人在线| av手机版| 男人天堂视频在线观看| 精品人妻一区二区三区在线视频不卡 | AA片网站| 亚洲狼人久久久精品| 人人人人干| 四虎在线观看视频| 最新久欠一区二区免费看| 肉片无遮挡一区二区三区免费观看视频 | 久久婷婷婬片A片AAA| 日本黄色直播| 免费一级网站| 日韩人成| 欧美深夜福利视频| 国产一级特黄大片| 欧一美一婬一伦一区二区三区自慰国| 无码做爰欢H肉动漫网站在线看| 一道本视频在线| 亚洲欧美日韩性爱| 成人激情片| 成人操B视频在线观看| 撸撸视频| 懂色av一区蜜桃| 久草黄色电影在线观看| 青青操逼| 亚洲一区| 日韩无码中文字幕| 久久久久久久| 国产操B| 日本精品视频| 久久无码电影| 亚洲无码高清在线| 91成人片| 大香蕉现在视频中心一| 亚洲精品一区二区二区的游戏情况| 婷婷激情五月| 成人在线网站| 法国《少女日记》电影| 日韩精品高清中文| 色婷婷天天操天天干| 日本高清视频网站网wwwwww| 自慰喷水流白浆中文字幕| 蕉久中文字慕| 殴美色色网| 日韩美女免费性爱视频| 懂色成人av影院| 粉嫩AV蜜乳AV蜜臀AV蜂腰AV | 黄色一级A片| 亚洲高清中文字幕| 亚洲AV日韩AV永久无码网站| 无码a区天堂| 亚洲性爱工厂| 国产激情免费视频| 波多野结衣av在线观看窜天猴| 久久精彩| 亚洲中文视频免费| 无套内射免费视频| 日韩三级视频在线观看| 亚洲无码黄色片| 欧美成人69| 亚洲高清无码中字| 免费黄色成人| 性综合网| 欧美视频基地| 欧美日韩成人在线观看| 欧一美一色一伦一A片| 成人黄色av| 黄色片视频在线观看| 俺去听听婷婷| 一区二区三区无码在线观看| 国产精品扒开腿做爽爽爽A片唱戏| 久久这里只有| 麻豆乱婬一区二区三区| 无码人妻AⅤ一区二区三区A片一| 杨晨晨不雅视频| 成人操B视频在线观看| 大鸡巴视频在线| 婷婷爱五月天| 麻豆熟妇乱妇熟色A片在线看| 国产欧美日韩综合在线视频| 欧美日韩国产免费观看成人片 | 国产欧美成人| 麻豆网站| 韩国无码人妻| 亚洲AV影院| 4虎亚洲人成人网www| 日韩无码视频二区| 91丨九色丨蝌蚪丨对白| 日日射视频| 国产在线性爱视频| 操操操无码| 内射无码视频| 丁香五月六月| av资源在线播放| AAA片| 欲色AV| 插丰满少妇在线观看| 少妇白浆| 婷婷五月天成人社区| 精品人妻一区二区三区蜜桃| 欧美群交videotv群交| 日本欧美在线视频| 色五月婷婷在线| 国精产品一区一区三区四川 | 日本一区二区三| 翔田千里在线一区二区三区| 精品久久久无码| 日韩a在线观看| 国产久久在线观看| 无码日韩视频| 日本A在线| 日韩av免费| 亚洲vs无码秘蜜桃少妇小说| 五月婷婷日韩| AV-ThePorn| 免费在线观看A| 自拍偷拍影音先锋| 亚洲AV无码| 日韩中文字幕一区| 樱桃码一区二区三区| 色婷婷一区二区三区四区五区精品视| 中文字幕永久在线视频v1.0| 亚洲少妇性爱视频| 欧美日韩一区在线观看| 高清无码视频18| 91人妻无码精品蜜桃| 成人三级av| 91视频在线免费观看| 香蕉av在线播放| 蜜桃黄色视频| 日皮网站在线观看| 成人久久久久一级大黄毛片中国| 骚婷婷| 亚洲狠狠干| 日韩精品一区二区三区四区蜜桃视频 | 五月色视频| 久久国产精品电影| 日日日日日干| 九九热国产视频| 天天干天天操天天干| 91视频在线观看| 韩国一区二区三区在线观看| 北京熟妇搡BBBB搡BBBB电影| 欧美精品性爱视频| 美女91视频网站| 91成人精品| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 亚洲日韩三级片| 翔田AV无码秘三区| 中文字幕日韩欧美| 色就是色欧美成人网| 七区九区一区在线| 亚洲AV无码国产精品久久不卡| 成人A片免费视频| 日韩黄视频| 国产午夜福利电影| 日无码在线| 日韩在线女优天天干| 91三级在线观看| 国产精品久久精品| 国内精品国产成人国产三级| 亚洲日韩中文无码| 北条麻妃亚洲无码| 97中文字幕在线| 北条麻妃网站| 尤物视频在线播放| 日本黄色精品| 久久97人妻AⅤ无码一区| 丁香婷婷激情| 中文字幕在线观| 一区二区三区在线看| jizz免费视频| 久久群交| 亚洲a∨| 双飞人妻13p| 逼逼AV网站-日韩电影| 天天色人人| 蜜桃AV无码一区二区三区| 欧美一道本| 日韩做爱视频| 熟女人妻一区二区三区免费看| 影音先锋男人网| 蜜桃视频在线入口www| 成人精品免费| 最新国产第一页| 亚洲美女网站免费观看网址 | 人人操AV| 五月丁香欧美性爱| 亚洲一区高清无码| 欧美成人在线免费视频| 最好看的MV中文字幕国语| 国产精品久久| 91视频首页| 日韩视频区| 韩国精品无码一区二区三区18 | 日批视频在线观看| 久久精品一区二区三区四区| 欧美老妇日韩| 国产精品国产三级国产AⅤ中文| 农村老太HD肉HD| 全国最大成人网站| 欧美日韩国产a| 手机看片亚洲| 黄色三级在线| 毛片网页| 鲁鲁鲁鲁鲁鲁鲁777777| 迷情校园综合| 成人乱无码AV在线观看| 女人的天堂AAA| 国精产品一区一区三区有限公司杨 | 女同一区二区三区| 中文字幕巨肉乱码中文乱码| 壁特壁视频在线观看| 男女爱爱动态图| 东京热一级片| 免费无码又爽又黄又刺激网站| 日韩性爱无码| 亚洲精品mv| 内射网站在线看| 免费看成人A片无码照片88hⅤ| 嫩BBB槡BBBB槡BBBB撒尿-百度 | 国产毛片久久久久久久| 中文字幕精品在线观看| 欧洲黑种人日P视频| 国产精品国产三级国产AⅤ| 91高清在线| 毛片国产| 黄色片在线视频| 国内久久婷婷| 91丨九色丨熟女老版| 国产黄色视频观看| 日本视频精品| 91久久视频| 免费看AV大片| 亚洲AV无码成人精品一区| 91女人18片女毛片60分钟| 亚洲欧美在线观看| 欧美69成人| 日韩熟女视频| 一级黄片免费看| 无码人妻中文| 五月丁香999| 日韩一级片在线观看| 亚洲综合99| 无码看片| 色情欧美一级A片| 91亚洲影院| 天天日夜夜添| 亚洲视频一区| 欧美大鸡巴在线观看| 亚洲AV无码乱码精| 久久精彩偷拍视频| 日本人妻在线观看| 在线免费观看黄色小视频| 日韩精品一区二区三区四区蜜桃视频| 99精品视频免费在线观看| 亚洲精品人伦一区二区| 日韩人妻无码一区二区三区中文| 亚洲有码在线视频| 国产婷婷色一区二区在线观看| 天天玩夜夜玩天天玩国产99| 久久久久久久久久成人| 亚洲精品无码久久| 黑人Av在线| 婷婷激情视频| 日日操视频| 大香蕉尹人在线视频| 亚洲最大黄色视频| 无码性爱视频| 精品人妻在线| 7777AV| 国产在线| 精品动漫一区二区三区| 白浆在线| 激情婷婷色五月| 麻豆国产91在线播放| 久久久久久久|