日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

Qt源码解析——元对象系统热身

發布時間:2023/11/11 C# 67 coder
生活随笔 收集整理的這篇文章主要介紹了 Qt源码解析——元对象系统热身 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關鍵詞:Qt 源碼 QObject QMetaObject 元對象系統 屬性 事件 信號 槽

概述

原系列文章地址

官方文檔第二章內容就是元對象系統,它在介紹里描述到:

Qt的元對象系統提供了信號和槽機制(用于對象間的通信)、運行時類型信息和動態屬性系統。

元對象系統基于三個要素:

  1. QObject類為那些可以利用元對象系統的對象提供了一個基類
  2. 在類聲明的私有部分中使用Q_OBJECT宏用于啟用元對象特性,比如動態屬性、信號和槽。
  3. 元對象編譯器(moc)為每個QObject子類提供必要的代碼來實現元對象特性。

moc工具讀取C++源文件,如果發現一個或多個包含Q_OBJECT宏的類聲明,它會生成另一個C++源文件,其中包含了這些類的每個元對象的代碼。這個生成的源文件被#include進入類的源文件,更常見的是被編譯并鏈接到類的實現中。

引入這個系統的主要原因是信號和槽機制,此外它還提供了一些額外功能:

  • QObject::metaObject() 返回與該類相關聯的元對象。
  • QMetaObject::className() 在運行時以字符串形式返回類名,而無需通過 C++ 編譯器提供本地運行時類型信息(RTTI)支持。
  • QObject::inherits() 函數返回一個對象是否是在 QObject 繼承樹內繼承了指定類的實例。
  • QObject::tr()QObject::trUtf8() 用于國際化的字符串翻譯。
  • QObject::setProperty()QObject::property() 動態地通過名稱設置和獲取屬性。
  • QMetaObject::newInstance() 構造該類的新實例。

上面說到的元對象系統三要素,第3點moc會在后面用單獨篇章分析,下面就不再展開,第1點我們在上一篇中做了簡單的分析,本篇我們看看第2點——Q_OBJECT到底怎么啟用了元對象系統(然而啟用非常復雜,我們先瀏覽個大概,所以標題叫熱身)。

staticMetaObject

找到源碼中出現QMetaObject的地方:

//qobject.h
class Q_CORE_EXPORT Qobject{
    Q_OBJECT
    //...
protected:
    static const QMetaObject staticQtMetaObject;
    //...
}

QMetaObject相關的變量只有2個地方出現,既然前面說了Q_OBJECT和元對象系統相關,那我們就直接看Q_OBJECT的定義:

//qobjectdefs.h
#define Q_OBJECT \
public: \
    QT_WARNING_PUSH \
    Q_OBJECT_NO_OVERRIDE_WARNING \
    static const QMetaObject staticMetaObject; \
    virtual const QMetaObject *metaObject() const; \
    virtual void *qt_metacast(const char *); \
    virtual int qt_metacall(QMetaObject::Call, int, void **); \
    QT_TR_FUNCTIONS \
private: \
    Q_OBJECT_NO_ATTRIBUTES_WARNING \
    Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); \
    QT_WARNING_POP \
    struct QPrivateSignal {}; \
    QT_ANNOTATE_CLASS(qt_qobject, "")

我們關注變量static const QMetaObject staticMetaObject,這是一個QMetaObject類型的靜態變量,它應該是和元對象系統相關,文檔對QMetaObject的描述:

QMetaObject類包含有關Qt對象的元信息。每個在應用程序中使用的QObject子類都會創建一個QMetaObject實例,該實例存儲了該QObject子類的所有元信息。此對象可通過QObject::metaObject()方法獲得。

QMetaObject就是元對象系統的關鍵了,查看QMetaObject的定義:

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject{
    //...
    struct { // private data
        const QMetaObject *superdata;
        const QByteArrayData *stringdata;
        const uint *data;
        typedef void (*StaticMetacallFunction)(QObject *, QMetaObject::Call, int, void **);
        StaticMetacallFunction static_metacall;
        const QMetaObject * const *relatedMetaObjects;
        void *extradata; //reserved for future use
    } d;
}

QMetaObject是個結構體,沒有構造函數。忽略掉所有方法聲明,只剩一個結構體變量,而且我們在qobject.cpp中也沒有看到staticMetaObject對應的初始化。那會不會在子類中初始化了?我們新建一個空的QMainWindow工程,繼承關系是這樣的:

//MainWindow->QMainWindow->QWidget->QObject

遺憾的是我們并沒有在MainWindowQMainWindowQWidget的構造器中找到staticMetaObject初始化的痕跡。

moc_mainwindow.cpp

想起來官方文檔說moc會處理Q_OBJECT宏,那就去moc文件找找——果然找到了staticMetaObject相關的語句:

//moc_mainwindow.cpp
QT_INIT_METAOBJECT const QMetaObject MainWindow::staticMetaObject = { {
    &QMainWindow::staticMetaObject,
    qt_meta_stringdata_MainWindow.data,
    qt_meta_data_MainWindow,
    qt_static_metacall,
    nullptr,
    nullptr
} };

結合QMetaObject的聲明,我們很容易看出這是在對QMetaObject的變量賦值:

變量名
const QMetaObject *superdata &QMainWindow::staticMetaObject
const QByteArrayData *stringdata qt_meta_stringdata_MainWindow.data
const uint *data qt_meta_data_MainWindow
StaticMetacallFunction static_metacall qt_static_metacall
const QMetaObject * const *relatedMetaObjects nullptr
void *extradata nullptr

對于const QMetaObject *superdata = &QMainWindow::staticMetaObject;

MainWindowstaticMetaObjectsuperdata持有了QMainWindowstaticMetaObject``,說明MainWindow可以訪問QMainWindowstaticMetaObject。由于并不能看到moc_qmainwindow.cpp等,我們只能從變量名合理猜測任何類的staticMetaObject都持有了父類的staticMetaObject

做個實驗測試一下:

//mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    //...
    const QMetaObject *metaDta = staticMetaObject.d.superdata;
    while(metaDta){
        qDebug() << metaDta->className();
        metaDta = metaDta->d.superdata;
    }
}

/*
輸出結果:
QMainWindow
QWidget
QObject
*/

果不其然,打印結果是輸出了MainWindow所有父類的className。那么我們基本可以斷定,繼承鏈中staticMetaObject的持有關系如下圖所示:

對于const QByteArrayData *stringdata = qt_meta_stringdata_MainWindow.data;

moc文件里找到qt_meta_stringdata_MainWindow變量:

//moc_mainwindow.cpp
static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
    {
QT_MOC_LITERAL(0, 0, 10) // "MainWindow"

    },
    "MainWindow"
};

qt_meta_stringdata_MainWindow是一個qt_meta_stringdata_MainWindow_t類型,這里對它進行了初始化。繼續找到qt_meta_stringdata_MainWindow_t的定義:

//moc_mainwindow.cpp
struct qt_meta_stringdata_MainWindow_t {
    QByteArrayData data[1];
    char stringdata0[11];
};

也就是說stringdata的值為QT_MOC_LITERAL(0, 0, 10) // "MainWindow"

繼續找到QT_MOC_LITERAL的定義:

//moc_mainwindow.cpp
#define QT_MOC_LITERAL(idx, ofs, len) \
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
        - idx * sizeof(QByteArrayData)) \
    )

這個宏的作用是創建一個靜態的 QByteArrayData 結構體,該結構體包含了字符串字面值的元數據。再結合注釋我們推斷stringdata代表"MainWindow"字符串,這里似乎是保存的類名MainWindow。從變量名qt_meta_stringdata_MainWindow推斷,這個變量應該就是保存的元對象相關的字符串字面量,但我們默認工程沒有元對象,我們在代碼中加一個signal

//mainwindow.h
signals:
    void testSignal();

重新編譯,可以看到,qt_meta_stringdata_MainWindow變量的初始化有所改變,從注釋看明顯包含了我們所加信號的名稱:

//moc_mainwindow.cpp
static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
    {
QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
QT_MOC_LITERAL(1, 11, 10), // "testSignal"
QT_MOC_LITERAL(2, 22, 0) // ""
    },
    "MainWindow\0testSignal\0"
};

對于const uint *data = qt_meta_data_MainWindow;

moc文件中找到qt_meta_data_MainWindow定義,它是一個uint數組,目前還看不出它的作用。

//moc_mainwindow.cpp
static const uint qt_meta_data_MainWindow[] = {
 // content:
       8,       // revision
       0,       // classname
       0,    0, // classinfo
       0,    0, // methods
       0,    0, // properties
       0,    0, // enums/sets
       0,    0, // constructors
       0,       // flags
       0,       // signalCount
       0        // eod
};

對于StaticMetacallFunction static_metacall = qt_static_metacall;

moc文件里找到qt_static_metacall定義,如果是默認工程,似乎也不做什么:

//moc_mainwindow.cpp
void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
    Q_UNUSED(_o);
    Q_UNUSED(_id);
    Q_UNUSED(_c);
    Q_UNUSED(_a);
}

對于const QMetaObject * const *relatedMetaObjects = nullptr;void *extradata = nullptr;暫時不討論。

我們目前找到了staticMetaObject初始化的位置,知道它被賦值了一些數據結構,這些數據結構都和moc相關。

QMetaObject其他成員

回過頭來,我們看看QMetaObject的其他成員。

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject
{
    class Connection;
	//...
}

class Q_CORE_EXPORT QMetaObject::Connection {
    //...
};

ConnectionQMetaObject的內部類,文檔描述:

Represents a handle to a signal-slot (or signal-functor) connection.

它代表了信號-槽的連接,那就是說我們平常使用的connect都和它相關,是個非常重要的角色。

我們可以看看我們一般使用的connect的定義:

//qobject.h
template <typename Func1, typename Func2>
    static inline typename std::enable_if<QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1, QMetaObject::Connection>::type
            connect(/*...*/)
    {
        //...
        return connectImpl(/*...*/);
    }

調用了connectImpl()

//qobject.h
static QMetaObject::Connection connectImpl(/*...*/);

的確是返回了QMetaObject::Connection,由此可見Connection是信號-槽系統的關鍵角色,它代表了一個建立的連接。

再看看其他接口:

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject
{
	//...
    //基本信息
    const char *className() const;
    const QMetaObject *superClass() const;
    bool inherits(const QMetaObject *metaObject) const Q_DECL_NOEXCEPT;
    //和類信息相關
    int classInfoOffset() const;
    int classInfoCount() const;
    int indexOfClassInfo(const char *name) const;
    QMetaClassInfo classInfo(int index) const;
    //和方法相關
    int methodOffset() const;
    int methodCount() const;
    int indexOfMethod(const char *method) const;
    QMetaMethod method(int index) const;
    //和枚舉相關
    int enumeratorOffset() const;
    int enumeratorCount() const;
    int indexOfEnumerator(const char *name) const;
    QMetaEnum enumerator(int index) const;
	//和屬性相關
    int propertyOffset() const;
    int propertyCount() const;
    int indexOfProperty(const char *name) const;
    QMetaProperty property(int index) const;
    QMetaProperty userProperty() const;
	//和構造器相關
    int constructorCount() const;
    int indexOfConstructor(const char *constructor) const;
    QMetaMethod constructor(int index) const;
	//和信號、槽相關
    int indexOfSignal(const char *signal) const;
    int indexOfSlot(const char *slot) const;
    static bool checkConnectArgs(const char *signal, const char *method);
    static bool checkConnectArgs(const QMetaMethod &signal,
                                 const QMetaMethod &method);
    static QByteArray normalizedSignature(const char *method);
    static QByteArray normalizedType(const char *type);
    //...
}


這些方法幾乎提供了獲取所有"元成員"信息的方式(好玩的是源碼作者強迫癥一樣地把功能類似的方法放到了一起),包括構造器、方法、屬性等,之所以說“元成員”,是因為被Q_INVOKABLEQ_PROPERTY等宏修飾的成員才具有"元能力"(當然,這也是后話了)。熟悉其他語言中反射特性的同學應該對這些方法的構成和名字比較熟悉,元對象系統的確為Qt提供了類似反射的能力。

接下來是和信號-槽相關的接口:

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject
{
    // internal index-based connect
    static Connection connect(const QObject *sender, int signal_index,
                              const QObject *receiver, int method_index,
                              int type = 0, int *types = nullptr);
    // internal index-based disconnect
    static bool disconnect(const QObject *sender, int signal_index,
                           const QObject *receiver, int method_index);
    //...
    // internal index-based signal activation
    static void activate(QObject *sender, int signal_index, void **argv);
    //...
}


從注釋來看,這些接口用于內部,是以索引為基礎的一些方法,暫時沒接觸到它們使用的場景。

接下來是很多重載或者模板的invokeMethod()

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject
{
    //...
    invokeMethod(/*...*/);
    //...
}

官方文檔說明:

Invokes the member (a signal or a slot name) on the object obj

看來是用于調用obj的信號或者槽。

接下來是newInstance()

//qobjectdefs.h
struct Q_CORE_EXPORT QMetaObject
{
    //...
    QObject *newInstance(/*...*/);
    //...
}

它是用來調用構造函數的。

總結

熱身就到這里,總結一下,Q_OBJECT宏用于啟用元對象特性,其中staticMetaObject的初始化在moc_xxx.cpp中進行,moc_xxx.cpp包含了許多“元成員”的字符串信息和實現。QMetaObject是元對象系統的關鍵成員,提供了元信息的接口。

總結

以上是生活随笔為你收集整理的Qt源码解析——元对象系统热身的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产亚洲精品久久久久久无几年桃 | 97在线精品视频 | 福利视频第一页 | 中文字幕av免费在线观看 | 国产理论免费 | 婷婷色社区 | 青青草国产成人99久久 | 精品久久久久一区二区国产 | 欧美少妇xx | 亚洲精品456在线播放 | 午夜精品电影 | 国产美腿白丝袜足在线av | 国产一区二区精品91 | 人人超碰免费 | 五月天天天操 | 国产精品日韩在线观看 | 久久久国产网站 | 国产一区二区免费看 | 婷婷伊人综合 | 三级在线视频播放 | 成人免费在线播放 | 国产精品日韩久久久久 | 欧美精品生活片 | 6080yy午夜一二三区久久 | 美女黄网站视频免费 | 日韩欧美在线免费观看 | 中文字幕日韩一区二区三区不卡 | 成人在线观看av | 国产中文字幕在线 | 天天色天天草天天射 | 一二区av | 欧美福利精品 | 欧美十八 | 午夜.dj高清免费观看视频 | 91人人爽人人爽人人精88v | 日日夜夜精品网站 | 亚洲精品在线一区二区 | 午夜精品影院 | 永久黄网站色视频免费观看w | 久久精品黄| 午夜精品一区二区三区免费视频 | 中文字幕第一页在线视频 | 日韩91精品 | 日韩黄色一级电影 | 最新中文字幕在线观看视频 | 欧美日韩亚洲一 | 奇米777777 | 九九亚洲视频 | 99视频国产精品免费观看 | 成人精品99 | 亚洲一区久久 | 五月激情综合婷婷 | 中文字幕免费国产精品 | 97成人精品视频在线观看 | 国产一级片免费观看 | 在线影院中文字幕 | 国产精品麻豆一区二区三区 | 久草视频免费看 | 日韩欧美一区二区不卡 | 一区二区三区韩国免费中文网站 | 四虎精品成人免费网站 | 麻豆久久一区二区 | 一级黄色免费网站 | 国产高清精品在线观看 | 天天爱天天草 | 久黄色 | 久久在线免费观看 | 又色又爽又黄 | 97视频免费在线观看 | 五月天久久综合 | 欧美日韩一级久久久久久免费看 | 又黄又爽又无遮挡的视频 | 精品国产乱码久久久久久天美 | 69国产精品视频 | 四虎在线免费观看视频 | 国产免费一区二区三区最新6 | 热久久国产 | 99久久精品国产一区 | 成人在线观看资源 | 亚洲专区一二三 | 婷婷丁香花| 在线视频日韩精品 | 国产成人久久av免费高清密臂 | 国产免费观看久久黄 | 在线观看中文字幕一区二区 | 亚洲狠狠干 | 亚洲3级| 国产视频一区在线播放 | 337p日本大胆噜噜噜噜 | 天天操天天射天天操 | 久久综合之合合综合久久 | 国产欧美日韩精品一区二区免费 | 成年人黄色免费视频 | 亚洲人久久久 | 97人人模人人爽人人喊网 | 久久久精品在线观看 | 97国产在线 | 色搞搞 | 成人免费在线视频观看 | 粉嫩高清一区二区三区 | 伊人春色电影网 | 91精品久久久久久综合五月天 | 免费色视频网站 | 国产高清精品在线观看 | 亚洲国产精品第一区二区 | 日韩中文字幕亚洲一区二区va在线 | 午夜国产影院 | 亚洲视频资源在线 | 午夜精品久久久久久久99无限制 | 久久精品五月 | 97国产| 精品国产网址 | 五月婷婷视频在线观看 | 激情久久一区二区三区 | 欧美成人精品欧美一级乱黄 | 久久国产电影院 | 国产精品观看在线亚洲人成网 | 国产二区电影 | 成人国产精品一区二区 | 亚洲伦理精品 | 久久精品视频在线播放 | 国产精品免费看久久久8精臀av | 91精品婷婷国产综合久久蝌蚪 | 麻豆传媒一区二区 | 亚州精品天堂中文字幕 | 97av在线| 五月婷婷国产 | 国产亚洲精品久久久久久久久久 | 亚洲日本欧美 | 天天射天天射 | 在线激情小视频 | 亚洲深夜影院 | 在线免费观看视频一区二区三区 | 色在线视频网 | 婷婷中文字幕综合 | 日韩成人xxxx | 精品在线观看一区二区 | 亚洲春色综合另类校园电影 | 亚洲欧美视频在线 | 久久免费看a级毛毛片 | 在线色亚洲 | 欧美日韩一区二区免费在线观看 | 久久午夜免费视频 | 久久精品亚洲国产 | 人人dvd| 久久精品91视频 | 久精品视频免费观看2 | 91精品国产91久久久久久三级 | 六月丁香婷婷久久 | 久久久久亚洲精品中文字幕 | 99久久精品无码一区二区毛片 | 国产二级视频 | 91精品国产自产91精品 | 天天爽天天碰狠狠添 | 国产一区在线免费观看视频 | av在线观| 成人久久综合 | 成人在线视频你懂的 | 成人av网站在线观看 | 欧美性黑人 | 日韩在线字幕 | www.久久精品视频 | 国产视频午夜 | 欧美男同网站 | 久草免费新视频 | 日韩精品免费一区二区三区 | 日韩精品中文字幕在线 | 国产香蕉av | 欧美性色xo影院 | av中文字幕剧情 | 午夜成人免费影院 | 91免费视频国产 | 国产裸体无遮挡 | 日韩一区二区三区在线看 | 免费男女羞羞的视频网站中文字幕 | 久草在线视频中文 | 色综合久 | www.在线看片.com | 九九热在线精品视频 | 免费福利在线播放 | 国产精品久久久久久一区二区三区 | 97精品国自产拍在线观看 | 97品白浆高清久久久久久 | 久久久国产精品视频 | 中文字幕影片免费在线观看 | 免费在线一区二区 | 91久久精品一区二区三区 | 天天天天综合 | 91传媒激情理伦片 | 国产精品人人做人人爽人人添 | 久久亚洲热 | 又粗又长又大又爽又黄少妇毛片 | 国产精品第72页 | 97超视频| av一级在线观看 | 国产精品福利午夜在线观看 | 狠狠色狠狠色合久久伊人 | 国产精品99久久久久久久久久久久 | 最近中文字幕在线播放 | 午夜电影久久 | 色综合久久88色综合天天6 | 亚洲成人黄色 | 国产二级视频 | 91桃花视频 | 色综合狠狠干 | 国内综合精品午夜久久资源 | 日韩大陆欧美高清视频区 | www国产在线 | a成人v在线 | 伊人色综合网 | 久久久免费精品国产一区二区 | 久久久久欧美精品 | 国产精品麻豆视频 | 欧美一级久久久久 | 国产精品国产自产拍高清av | 黄色小网站免费看 | 久久 国产一区 | 欧美一区二区在线免费看 | 色91av| 久草在线99 | 久草在线综合 | 天天操天天吃 | 九九色网| 久久久久中文 | 日韩精品不卡在线 | 免费在线观看av不卡 | 欧美黑人巨大xxxxx | 国产精品黄色在线观看 | www国产亚洲精品 | 色在线网站 | 亚州精品一二三区 | 欧美大片www| 5月丁香婷婷综合 | 91在线视频免费播放 | 久久成人免费电影 | 超碰人人乐| 蜜臀av在线一区二区三区 | 在线观看国产www | 欧洲一区精品 | 97视频在线观看免费 | 日韩欧美v | 亚洲 欧美日韩 国产 中文 | 国产成人精品日本亚洲999 | 啪啪免费观看网站 | 亚洲精品小区久久久久久 | 探花视频在线版播放免费观看 | 四虎影视精品成人 | 91精品日韩 | 成人在线视频免费观看 | 91高清免费 | 欧美精品一区二区在线观看 | 国产尤物视频在线 | 免费观看一级成人毛片 | 69国产成人综合久久精品欧美 | 91天堂影院| 六月丁香综合 | 国产啊v在线观看 | 天天色天天射天天干 | 9999免费视频 | 欧美日韩3p| 午夜影院在线观看18 | 99久久久国产精品 | 久久久国产精品亚洲一区 | av网站在线免费观看 | 日韩网站在线看片你懂的 | 丁香激情综合 | 免费一级日韩欧美性大片 | 麻豆视频www | 一级黄色片在线免费看 | 一区二区三区在线视频111 | 在线看不卡av | 欧美专区日韩专区 | 国语麻豆| 91亚洲在线观看 | 久久久亚洲国产精品麻豆综合天堂 | 奇米影视四色8888 | 亚洲日本va中文字幕 | 亚洲综合色av| 久久久久久久久久久久av | 国产大尺度视频 | 亚洲精品高清视频在线观看 | 国内丰满少妇猛烈精品播放 | 日韩有码中文字幕在线 | 十八岁免进欧美 | 999国产精品视频 | 久久免费视频国产 | 久久伊99综合婷婷久久伊 | 欧美性做爰猛烈叫床潮 | 日韩a在线 | 狠狠操在线 | 久久黄色网址 | 开心色激情网 | 国产视频在线免费观看 | 午夜男人影院 | 丁香伊人网 | 国产精品热视频 | 精品电影一区 | 激情av在线资源 | 午夜体验区 | 毛片视频电影 | 天天色 天天 | 超碰日韩在线 | 久久精品久久综合 | 欧洲黄色片 | 日韩在线高清免费视频 | 久久国产亚洲精品 | 久久最新视频 | 少妇搡bbbb搡bbb搡69 | 国内视频1区 | www夜夜| 日本丶国产丶欧美色综合 | 97视频在线观看播放 | 日韩欧美在线观看一区二区三区 | 毛片一级免费一级 | 亚洲精品成人网 | 久草精品视频在线观看 | 人人看人人艹 | 欧美俄罗斯性视频 | 亚洲第一伊人 | 久久的色 | 色是在线视频 | 超碰公开在线观看 | 亚洲成人精品久久 | 99爱在线 | 五月天天天操 | 日韩在线网 | 日本中文字幕在线看 | 91视频在线观看大全 | 欧美成人播放 | 射射射av | 在线免费视| 激情五月婷婷综合网 | 国产精品网站 | 久久99精品国产麻豆宅宅 | 中文有码在线 | 综合精品久久久 | 青青河边草观看完整版高清 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产黄色大片 | 欧美另类sm图片 | 一级片免费观看视频 | 亚洲三级网 | 亚洲 中文 欧美 日韩vr 在线 | 国产精品av免费观看 | 久久免费视屏 | 天天操天天色天天射 | 一区二区三区免费播放 | 欧美日韩xxxxx | a级成人毛片 | 欧美精品一二三 | 五月综合久久 | 欧美吞精 | 精品v亚洲v欧美v高清v | 黄污网| 亚洲在线黄色 | 亚洲精品影视在线观看 | 婷婷av色综合 | 99这里只有精品视频 | 亚洲精品一区二区三区在线观看 | 久久久久麻豆 | 毛片精品免费在线观看 | 午夜国产影院 | 久99久在线视频 | 久久精品电影院 | 日韩精品中文字幕在线不卡尤物 | 久久无码av一区二区三区电影网 | 久久午夜影院 | 国产一区自拍视频 | 在线免费观看国产黄色 | 亚洲国产日韩欧美在线 | 国产伦精品一区二区三区照片91 | 国产精品一区二区三区久久 | 中文字幕久久精品一区 | 国产视频1区2区 | 91夫妻视频| 国产色一区 | 久久国内精品视频 | 激情五月婷婷网 | 激情小说网站亚洲综合网 | 四虎在线永久免费观看 | 久久久久免费网站 | 精品福利在线视频 | 亚洲mv大片欧洲mv大片免费 | 精品理论片| 三级a视频 | 日韩二区三区在线 | 欧美日韩天堂 | 亚洲精品www久久久 www国产精品com | 久久综合99 | www.天天操.com | 国产精品久久毛片 | 国产91av视频在线观看 | 91一区啪爱嗯打偷拍欧美 | 久久综合福利 | 美女在线国产 | 亚洲免费小视频 | 国产精品久久久久久久av电影 | 免费观看视频黄 | 天天操天天操天天 | 国产成人精品网站 | 天天视频色版 | 免费网站在线观看成人 | 91喷水| 久草在线99| 久久公开免费视频 | 欧美亚洲一区二区在线 | 亚洲作爱 | 在线观看免费成人av | 日韩va欧美va亚洲va久久 | 国产美女免费视频 | a在线视频v视频 | 日韩影视精品 | 白丝av免费观看 | 天天操狠狠操夜夜操 | 免费在线观看不卡av | 日韩理论在线视频 | 日本丶国产丶欧美色综合 | 91污视频在线观看 | 中文区中文字幕免费看 | 麻豆传媒电影在线观看 | 日韩欧美视频在线观看免费 | 91香蕉久久| 国产最顶级的黄色片在线免费观看 | 免费午夜网站 | 精品免费久久久久久 | 久久久久国产一区二区三区 | 五月婷婷久草 | 天天操人人干 | 久久亚洲成人网 | 国产一区二区在线观看视频 | 天天色中文 | 久久综合桃花 | 午夜视频在线观看一区 | 国产一区国产二区在线观看 | 国产精品女同一区二区三区久久夜 | 日日色综合| 国外调教视频网站 | 亚洲国内精品 | 69成人在线 | 成人黄色大片 | 免费看v片 | 国产成人精品一区二区三区福利 | 中国成人一区 | 免费精品视频在线观看 | 国产在线精品二区 | 国产成人精品久久二区二区 | 草久久久 | 精品国产免费一区二区三区五区 | 一区二区视频电影在线观看 | 天天爽天天搞 | 日韩午夜av电影 | 久色 网 | 国内精自线一二区永久 | 久草在线视频网 | 999久久久欧美日韩黑人 | 青青草华人在线视频 | 日本中文字幕网址 | 天天干夜夜想 | 深爱五月激情五月 | 色福利网站 | 日本黄色大片免费 | 欧美日韩大片在线观看 | 四虎影视www | 婷婷五天天在线视频 | 日韩精品一区二区三区中文字幕 | 51精品国自产在线 | 国产精品av免费观看 | 91精选在线| 九九免费精品视频 | 色在线高清 | 亚洲精品五月天 | 精品国产乱码 | 在线观看韩国av | 在线看国产一区 | 国产一级视频免费看 | 久青草视频在线观看 | 亚洲精品乱码久久久久久久久久 | 婷婷在线网站 | 日韩欧美在线播放 | 久草国产视频 | 天堂网av 在线 | 激情五月五月婷婷 | 日韩在线免费观看视频 | 久草久草久草久草 | 在线成人性视频 | 婷婷丁香花五月天 | 草免费视频 | 岛国一区在线 | 日韩在线中文字幕视频 | 欧美日韩在线电影 | 免费观看成人网 | 精品国产电影 | 日本精品视频在线观看 | 久久视精品| 日日操天天操夜夜操 | 国产精品成人国产乱 | 黄色资源网站 | 久久久久国产精品一区二区 | 免费视频黄| 精品福利av| a级片韩国| 午夜影院一级 | 国产欧美精品在线观看 | 久久视频国产 | 午夜久久久影院 | 免费看污片 | 亚洲 欧美日韩 国产 中文 | 精品视频资源站 | 美女在线国产 | 一级黄色片在线免费看 | 国产主播大尺度精品福利免费 | 欧美精品亚州精品 | 精品国产伦一区二区三区观看说明 | 亚洲国产欧美一区二区三区丁香婷 | 黄色aaa级片 | 天堂在线一区二区三区 | 天天操天天操天天操天天操天天操天天操 | 狠色在线 | 欧美高清成人 | 国产a国产 | 国产精品一区二区三区免费看 | 五月的婷婷 | 超级av在线| 欧美在线18 | 国产成人精品av在线观 | 久久精品免费播放 | 亚洲精品综合一区二区 | 国产精品久久网站 | 日韩欧美在线观看 | 操操日日 | 超碰人人超 | 久久久人人人 | 欧美一级片免费播放 | 欧美一级电影片 | 狠狠狠狠狠狠狠干 | 亚洲一级影院 | 最近的中文字幕大全免费版 | 九九九九九九精品任你躁 | 中国美女一级看片 | 狠狠色丁香| 国产精品18久久久久久不卡孕妇 | 99免费在线 | 在线黄色av电影 | aaawww| 九九久久免费 | 黄色av网站在线观看免费 | 亚洲天天看 | 国产美女搞久久 | 欧美色插 | 久久免费99精品久久久久久 | 欧美精品亚洲二区 | 日韩xxxx视频 | 伊人成人久久 | 久草视频手机在线 | 国产香蕉97碰碰碰视频在线观看 | 国产精品男女视频 | 国产精品一区二区三区视频免费 | www蜜桃视频| 99免费看片| 亚洲精品乱码久久久久久9色 | 免费日韩一级片 | 在线国产一区二区 | 中文字幕欧美日韩va免费视频 | 97电影在线观看 | 日韩精品视频网站 | 成人久久国产 | 亚洲国产精久久久久久久 | 91av原创 | 丁香六月av | 在线国产视频 | 黄色99视频 | 三级黄色a | 久久综合久久综合九色 | 91片网| 九七人人干 | 欧美一区二区三区在线观看 | 欧美91在线 | 久久无码av一区二区三区电影网 | 美女视频网站久久 | 久久无码av一区二区三区电影网 | 在线亚洲欧美日韩 | 午夜黄色影院 | 国产主播99 | av在线免费在线观看 | 亚洲一区尤物 | 国产在线观看你懂得 | av片免费播放 | 在线看国产 | 麻豆国产在线视频 | 看av免费| www天天操| 午夜国产福利在线 | 国产亚洲成人网 | 欧美午夜剧场 | 亚洲欧美视频网站 | 国产精品成人一区二区三区吃奶 | 91完整版观看 | 狠狠干综合网 | 色婷婷精品大在线视频 | 久久新| 天天操·夜夜操 | 国产一区播放 | 99精品国产免费久久久久久下载 | 色综合久久悠悠 | 免费视频91蜜桃 | 91av视频在线观看 | 在线观看免费福利 | 久久精品成人欧美大片古装 | 国产成人精品电影久久久 | 国产欧美精品一区二区三区四区 | 欧美最猛性xxxxx(亚洲精品) | 免费高清影视 | 久草在线免费电影 | 亚洲国产一区av | 精产嫩模国品一二三区 | 97色婷婷 | 超碰日韩| 五月婷婷开心中文字幕 | 99999精品视频 | 西西4444www大胆无视频 | 91免费看黄色 | 国产精品毛片一区视频播不卡 | 夜夜干夜夜 | 国产视频日韩视频欧美视频 | 久久黄色片子 | 日韩在线中文字幕 | 午夜视频在线观看欧美 | 午夜精品久久久99热福利 | 国产高清不卡一区二区三区 | av在线不卡观看 | 91视频麻豆| 久久久亚洲国产精品麻豆综合天堂 | 中文字幕av网站 | 911av视频| 日韩久久久久久久久久 | 婷婷色综合 | 日韩欧美不卡 | 久久综合久久综合这里只有精品 | 色婷婷欧美 | 免费观看一区 | 国产精品igao视频网网址 | 国产精品99久久久久人中文网介绍 | 久久毛片网站 | 久久久久久中文字幕 | 久久久久久久久久久网站 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产又粗又硬又爽视频 | 91一区二区三区久久久久国产乱 | 国产视频久 | 亚洲精品玖玖玖av在线看 | 丁香五婷| 日韩av区| 久久高清片| 亚洲精品www久久久 www国产精品com | 天堂在线免费视频 | 国产视频午夜 | www.久久com| 国产精品精品国产色婷婷 | 超碰97在线资源站 | 天天综合狠狠精品 | 国产精品福利无圣光在线一区 | 中文字幕国产一区 | 欧美日韩一级久久久久久免费看 | 青青草国产精品视频 | 国产极品尤物在线 | 日韩av成人| 狠狠狠的干 | 欧美一二三四在线 | 久草热久草视频 | 奇米777777 | 伊人婷婷在线 | 99精品久久只有精品 | 久久综合色播五月 | 992tv在线成人免费观看 | 久久96国产精品久久99漫画 | 国产亚洲精品久久久久久网站 | 亚洲黄网址 | 日韩va欧美va亚洲va久久 | 97人人澡人人添人人爽超碰 | 在线免费视频一区 | 久草视频网 | 国产美女精品人人做人人爽 | 日韩激情久久 | 欧美二区视频 | 成年人免费在线看 | 色噜噜日韩精品一区二区三区视频 | 97人人爽人人 | 亚洲手机av| 国产原厂视频在线观看 | 日韩免费一级a毛片在线播放一级 | 国产a级精品| 久久亚洲热 | 精品夜夜嗨av一区二区三区 | 六月婷色 | www.久久成人 | 天天草天天干天天射 | 伊人五月婷 | 91精彩视频在线观看 | 在线亚洲播放 | 最近中文字幕mv | 亚洲最大av在线播放 | 中文字幕视频一区 | 亚洲区精品视频 | 狠狠狠狠狠色综合 | 一区免费在线 | 91自拍成人 | 深爱五月激情五月 | 中文字幕免 | 国产自产高清不卡 | 久久免费av电影 | 欧美日韩在线观看一区 | 国产精品国产亚洲精品看不卡 | 有没有在线观看av | 国产精品99久久久 | 欧美视频99 | 九七视频在线观看 | 国产成人精品一区二 | 久久久久久蜜桃一区二区 | 亚洲乱码久久久 | 色综合国产 | 国产精品久久久免费 | 欧美极品xxxx | 亚洲成人一二三 | 人操人 | 中文字幕在线中文 | 色网站在线免费 | 欧美a性| 一区二区不卡高清 | 91久久国产露脸精品国产闺蜜 | 在线 你懂 | 在线观看91精品国产网站 | 亚洲精品18日本一区app | 天堂网在线视频 | 韩国三级av在线 | 日韩精品大片 | 国产精品一区二区精品视频免费看 | 最新av在线网址 | 超碰在线最新网址 | 国产色资源 | 国产日韩欧美在线观看视频 | 九色视频网站 | 欧洲精品亚洲精品 | 国产传媒中文字幕 | 麻豆影视在线播放 | 五月天电影免费在线观看一区 | 国产在线1区| 99爱精品在线 | 亚洲国产精品影院 | av一级久久| 国产一级二级三级在线观看 | 国产精品五月天 | 狠狠干夜夜爱 | 亚洲午夜在线视频 | 91在线视频一区 | 日本精品视频免费 | 国产97色在线 | 久久天天躁狠狠躁亚洲综合公司 | 91九色国产 | 国产资源精品在线观看 | 久久综合欧美精品亚洲一区 | 在线免费观看国产黄色 | 一区久久久 | 国产精品一区二区在线播放 | 日本福利视频在线 | 国产亚洲午夜高清国产拍精品 | 黄色大全视频 | 五月天婷婷免费视频 | 免费日韩电影 | 亚洲成av人片一区二区梦乃 | 精品国产乱码久久久久久浪潮 | 国产成人av免费在线观看 | 国产综合香蕉五月婷在线 | 天天色天天射天天操 | 亚洲 综合 国产 精品 | 久久精品麻豆 | 久久全国免费视频 | 亚洲国产日韩欧美在线 | 久久婷婷一区二区三区 | 免费在线国产精品 | 免费高清在线观看电视网站 | 中文字幕在线观看视频一区二区三区 | 日本精品视频一区二区 | 成人毛片在线观看 | 免费在线观看成人av | 国产精品青草综合久久久久99 | 国产视频每日更新 | 日韩av影视在线 | 国产手机精品视频 | 日本在线观看中文字幕 | 综合天堂av久久久久久久 | 日本性xxxxx 亚洲精品午夜久久久 | 亚洲日本三级 | 免费日韩 精品中文字幕视频在线 | 欧洲精品二区 | 亚洲国产成人高清精品 | 欧美精品黑人性xxxx | 国产高清不卡在线 | 99久久久免费视频 | 日韩黄色中文字幕 | 69xx视频| 久久99免费视频 | 国产精品二区在线观看 | 亚洲黄色一级大片 | 中文字幕日韩国产 | 午夜在线免费观看视频 | 亚洲欧美日本一区二区三区 | 精品国产乱码久久久久久三级人 | 正在播放 国产精品 | 国产精品一区二区果冻传媒 | 久久精品一区二区三区中文字幕 | 三级动态视频在线观看 | 99久久精品国产欧美主题曲 | 日日操日日插 | 国内外成人免费在线视频 | 美女黄久久 | av成人免费网站 | 激情五月网站 | 国产日韩视频在线播放 | 少妇搡bbbb搡bbb搡69 | 国产精品一区免费在线观看 | 69xxxx欧美| 在线国产91 | 精品国产伦一区二区三区观看说明 | 久草视频在线免费播放 | 91在线观| 五月天色婷婷丁香 | 欧美一区二区三区在线视频观看 | 国产福利资源 | 337p西西人体大胆瓣开下部 | av短片在线观看 | 日韩在线视频看看 | 亚洲日本精品视频 | 欧美精品少妇xxxxx喷水 | 92精品国产成人观看免费 | 久草视频在线观 | 丁香六月国产 | 国产成人精品在线播放 | 成人免费av电影 | 国产免费午夜 | 91九色porny蝌蚪视频 | 日韩免费在线看 | 国产高清精品在线观看 | 91色吧| 国产精品原创 | 日韩91精品 | av软件在线观看 | 国产精品一区欧美 | 国产一级做a | 国产精品区二区三区日本 | 五月天亚洲婷婷 | 国产精品久久久久四虎 | 一区二区三高清 | av中文字幕在线观看网站 | 亚洲一区久久 | 91av大全| 一级做a爱片性色毛片www | 日韩视频区 | www.黄色片网站 | 欧美黄污视频 | 色多多在线观看 | 婷婷香蕉 | 国产99久久久国产精品免费看 | 久久99精品国产麻豆宅宅 | 久久99国产一区二区三区 | 丁香六月婷婷开心婷婷网 | 干 操 插| 成人av av在线 | www.婷婷色 | 国产欧美精品一区二区三区四区 | 日日麻批40分钟视频免费观看 | 日韩欧美一区二区三区视频 | 天天干 天天摸 天天操 | 91麻豆精品国产91 | 99精品福利视频 | 91精品麻豆| 91黄色在线观看 | 人人爱人人爽 | 亚洲电影第一页av | 久草在线99| 99国产精品久久久久老师 | 国产精品九色 | 亚洲涩综合 | 91mv.cool在线观看 | 色综合久久久 | 国产91探花 | 在线观看成人福利 | 99久久久精品 | 国产精品福利午夜在线观看 | 91精品一区二区三区久久久久久 | 国产精品剧情 | 亚洲精品综合一区二区 | 99视频久久| 亚洲视频在线免费看 | 久久久久久久久亚洲精品 | 天天插视频 | 日韩精品一区二区三区中文字幕 | 九九视频精品免费 | 狠狠干.com| 成人片在线播放 | 国产精品亚 | 黄色在线观看免费 | 五月婷婷精品 | 欧美日韩一区二区三区在线观看视频 | 91热在线 | 91av手机在线观看 | 久久国产精品99久久久久久老狼 | av电影久久 | 又污又黄的网站 | 69精品久久久 | 精品国产亚洲一区二区麻豆 | 色天天综合网 | 亚洲 欧美 日韩 综合 | 色婷婷久久一区二区 | 国产黄色av影视 | 伊人狠狠色 | 91视频免费网址 | 一本一本久久aa综合精品 | 91最新中文字幕 | av大全在线免费观看 | 91亚洲精品在线观看 | 99视频偷窥在线精品国自产拍 | 国产涩涩网站 | 五月天高清欧美mv | 久久久99精品免费观看乱色 | 色五月激情五月 | 一区二区精品在线 | 国产亚洲精品av | 国产偷在线| 日韩在线视频线视频免费网站 | 亚洲精品一区二区三区高潮 | 黄色激情网址 | 久久国产精品免费观看 | 欧美日韩亚洲第一页 | 亚洲无吗av | 日韩av不卡在线 | 久久精品成人欧美大片古装 | 久久久久久久久免费视频 | 天天色天天干天天 | 国产一区二区影院 | 色综合久久久久久久 | 人人干人人爽 | 欧美成人h版在线观看 | 九九九热精品免费视频观看 | 亚洲 欧洲 国产 精品 | 国产精品观看 | 欧美日韩中文字幕在线视频 | 久久99在线观看 | 成年人在线观看 | 91黄色成人 | 亚洲成人国产精品 | 日韩电影中文,亚洲精品乱码 | 日韩欧美在线免费观看 | 99亚洲精品在线 | 91麻豆精品国产自产在线 | 青青草在久久免费久久免费 | 成人在线播放免费观看 | 亚洲免费小视频 | 亚洲理论电影 | 国产亚洲观看 | 国产成人精品久久二区二区 | 成人一级免费视频 | 国产在线视频一区 | 最新亚洲视频 | 欧美性黄网官网 | 欧美日韩成人一区 | 综合在线观看色 | 在线岛国av | 高清av中文字幕 | 日韩试看| 久草在线电影网 | 国产破处在线视频 | 在线观看中文字幕一区 | 国产91在线 | 美洲 | 天天色官网 | 九精品 | 精品天堂av | 日韩av电影免费在线观看 | 色偷偷中文字幕 | 日批网站免费观看 | 免费91麻豆精品国产自产在线观看 | 日批网站免费观看 | 91亚州 | 色在线免费 | 99久久精品国产一区二区三区 | av色影院 | 日韩大片在线观看 | 伊人小视频 | 亚洲国产操 | 欧美性大战 | 人人爽人人乐 | 日韩精品一区二区三区水蜜桃 | 亚洲精品成人免费 | 精品爱爱 | 在线91av | 免费看的黄色片 | 成年人视频在线免费播放 | 中文字幕精品一区二区精品 | 国产第一页福利影院 |