久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Qt多級(jí)表頭實(shí)戰(zhàn):自定義QHeaderView實(shí)現(xiàn)與避坑指南

Qt多級(jí)表頭實(shí)戰(zhàn):自定義QHeaderView實(shí)現(xiàn)與避坑指南 簡(jiǎn)介這份資源面向使用 Qt 進(jìn)行桌面開(kāi)發(fā)的程序員聚焦 QTableView 多級(jí)表頭的實(shí)現(xiàn)難題。在 Qt 中QTableView 的水平表頭本質(zhì)是 QHeaderView 實(shí)例標(biāo)準(zhǔn)控件只支持單層表頭難以組織復(fù)雜數(shù)據(jù)結(jié)構(gòu)。資源通過(guò)繼承 QHeaderView 并重寫(xiě) paintSection、sectionSizeFromContents 等關(guān)鍵方法配合 QPainter 逐層繪制表頭文字與分隔線再將自定義表頭賦值給 horizontalHeader 或 verticalHeader從而構(gòu)建多級(jí)表頭效果。壓縮包共 12 個(gè)文件約 17KB包含 4 個(gè) cpp 源文件、4 個(gè) h 頭文件、2 個(gè) ui 界面文件及 pro 工程文件覆蓋多級(jí)表頭類、委托類與初始化示例等模塊結(jié)構(gòu)緊湊便于直接參考。目前已有 841 人學(xué)習(xí)下載。讀者可從中掌握表頭繪制、尺寸計(jì)算、模型同步與視圖刷新等排錯(cuò)思路理解 QAbstractItemModel 與 QHeaderView 的交互方式為構(gòu)建復(fù)雜表格界面提供可復(fù)用的實(shí)現(xiàn)參考。1. 多級(jí)表頭不是 QTableView 的原生能力但業(yè)務(wù)系統(tǒng)繞不開(kāi)它做過(guò)工業(yè)上位機(jī)、MES 客戶端或者醫(yī)療設(shè)備配置界面的人大概率都遇到過(guò)這種需求一張表要按「設(shè)備 / 通道 / 采樣點(diǎn)」三層分組或者「年 / 季度 / 月」這種時(shí)間維度嵌套。QTableView 配 QStandardItemModel 做單層表頭很舒服一行setHorizontalHeaderLabels就完事可一旦要合并單元格式的多級(jí)表頭官方 API 里翻不到現(xiàn)成方法。這不是 Qt 的缺陷而是 Model/View 架構(gòu)把表頭抽象成了 QHeaderView它只負(fù)責(zé)一維的行列標(biāo)簽二維嵌套得自己動(dòng)手。我最早在一個(gè)模擬項(xiàng)目里踩過(guò)這個(gè)坑客戶要求表格頂部顯示兩層分組第一層是「溫度 / 濕度 / 壓力」第二層是各自的「當(dāng)前值 / 上限 / 下限」。當(dāng)時(shí)圖省事直接拿兩個(gè) QTableView 上下拼結(jié)果列寬對(duì)不齊、滾動(dòng)不同步、排序全亂套被測(cè)試打回來(lái)三次。后來(lái)老老實(shí)實(shí)繼承 QHeaderView 重寫(xiě) paintSection才算把這塊骨頭啃下來(lái)。這篇筆記就按我實(shí)際落地的路徑講先講清楚為什么不能靠 QStandardItemModel 硬撐再給一套可復(fù)現(xiàn)的自定義 QHeaderView 方案最后把參數(shù)、坑和驗(yàn)證方法攤開(kāi)。適合已經(jīng)會(huì)用 QTableView 但被多級(jí)表頭卡住的 Qt 開(kāi)發(fā)者新手跟著代碼能跑通熟手能直接拿去改。2. 為什么 QStandardItemModel 撐不起多級(jí)表頭2.1 表頭在 Qt 里的真實(shí)職責(zé)邊界要理解多級(jí)表頭為什么得自己寫(xiě)先得把 Qt 里「表頭」這個(gè)角色的邊界劃清楚。QTableView 本身只負(fù)責(zé)數(shù)據(jù)區(qū)域的繪制和交互行列表頭由 QHeaderView 獨(dú)立管理。QHeaderView 的模型接口是QAbstractItemModel的 headerData 部分它拿到的只有 section第幾列、orientation水平還是垂直、role顯示文本、對(duì)齊、顏色等。換句話說(shuō)表頭在框架眼里是一串一維的標(biāo)簽每個(gè) section 對(duì)應(yīng)一列沒(méi)有「父列」「子列」的概念。QStandardItemModel 的setHorizontalHeaderItem也好setHeaderData也好都只是往這個(gè)一維結(jié)構(gòu)里塞數(shù)據(jù)。你沒(méi)法告訴它「第 0 列和第 1 列屬于同一個(gè)父分組」因?yàn)?headerData 的返回值是 QVariant不是樹(shù)形結(jié)構(gòu)。有人嘗試用setSpan在表頭上合并單元格但 setSpan 作用在 QTableView 的 viewport 上對(duì) QHeaderView 無(wú)效這是兩套繪制體系。所以結(jié)論很直接多級(jí)表頭不是「配置一下就能開(kāi)」的功能它要求你接管 QHeaderView 的繪制邏輯自己維護(hù)一份層級(jí)關(guān)系再在 paintSection 里按層級(jí)算矩形、畫(huà)文字和分隔線。這不是繞遠(yuǎn)路而是唯一穩(wěn)的路。2.2 三種常見(jiàn)方案的取舍對(duì)比在動(dòng)手寫(xiě)代碼前我把當(dāng)時(shí)能想到的方案列了個(gè)表實(shí)際對(duì)比下來(lái)差距很明顯。方案實(shí)現(xiàn)方式優(yōu)點(diǎn)致命問(wèn)題雙 QTableView 拼接上下兩個(gè) view上面當(dāng)表頭不用重寫(xiě)繪制列寬不同步、滾動(dòng)錯(cuò)位、排序失效QStandardItemModel setSpan在數(shù)據(jù)區(qū)模擬表頭代碼量少表頭區(qū)域無(wú)法合并滾動(dòng)時(shí)錯(cuò)位自定義 QHeaderView繼承并重寫(xiě) paintSection列寬同步、滾動(dòng)一致、可排序需要自己算層級(jí)矩形雙 view 方案我實(shí)測(cè)過(guò)橫向滾動(dòng)條一動(dòng)上下兩層的列偏移能差出十幾個(gè)像素因?yàn)閮蓚€(gè) view 的 viewport 寬度計(jì)算是獨(dú)立的。setSpan 方案更離譜表頭根本不在 viewport 的 span 范圍內(nèi)。自定義 QHeaderView 雖然要多寫(xiě)一百多行但它是唯一能保證「表頭和數(shù)據(jù)區(qū)共用同一套列寬、同一套滾動(dòng)偏移」的做法。選型上沒(méi)什么好猶豫的直接走第三條路。2.3 自定義 QHeaderView 的最小骨架先給一個(gè)能跑起來(lái)的最小骨架把繼承關(guān)系和關(guān)鍵虛函數(shù)占住位。這段代碼不畫(huà)多級(jí)只保證替換掉默認(rèn)表頭后表格還能正常顯示作為后續(xù)擴(kuò)展的基線。// MultiLevelHeaderView.h #pragma once #include QHeaderView #include QVector class MultiLevelHeaderView : public QHeaderView { Q_OBJECT public: explicit MultiLevelHeaderView(Qt::Orientation orientation, QWidget *parent nullptr); protected: // 核心繪制入口所有層級(jí)都從這里畫(huà)出去 void paintSection(QPainter *painter, const QRect rect, int logicalIndex) const override; // 告訴布局系統(tǒng)表頭需要多高 QSize sizeHint() const override; private: // 層級(jí)定義每層存該層每個(gè)葉子列的跨度 QVectorQVectorint m_levelSpans; int m_levelCount 1; };// MultiLevelHeaderView.cpp #include MultiLevelHeaderView.h #include QPainter MultiLevelHeaderView::MultiLevelHeaderView(Qt::Orientation orientation, QWidget *parent) : QHeaderView(orientation, parent) { // 關(guān)閉默認(rèn)的點(diǎn)擊高亮避免和自定義繪制打架 setSectionsClickable(true); setHighlightSections(false); } void MultiLevelHeaderView::paintSection(QPainter *painter, const QRect rect, int logicalIndex) const { // 基線版本先調(diào)用父類保證單層表頭正常 QHeaderView::paintSection(painter, rect, logicalIndex); } QSize MultiLevelHeaderView::sizeHint() const { // 每層按 28px 估算后續(xù)按字體實(shí)際高度調(diào)整 return QSize(QHeaderView::sizeHint().width(), m_levelCount * 28); }這段骨架的關(guān)鍵點(diǎn)有三個(gè)。第一paintSection是唯一需要重寫(xiě)的繪制入口Qt 會(huì)為每個(gè)可見(jiàn) section 調(diào)用它你在這里決定畫(huà)什么。第二sizeHint必須返回足夠的高度否則多出來(lái)的層級(jí)會(huì)被裁掉這是新手最容易翻車的地方——畫(huà)了但看不見(jiàn)。第三setHighlightSections(false)要關(guān)掉默認(rèn)的懸停高亮?xí)采w你畫(huà)的背景色導(dǎo)致層級(jí)分隔線時(shí)有時(shí)無(wú)。參數(shù)上m_levelCount控制表頭總層數(shù)m_levelSpans后面會(huì)用來(lái)存每層的合并跨度?;€版本先保證能替換默認(rèn)表頭且表格不崩下一步再往里填層級(jí)數(shù)據(jù)。3. 把層級(jí)數(shù)據(jù)喂給自定義表頭3.1 用跨度數(shù)組描述多級(jí)結(jié)構(gòu)多級(jí)表頭的本質(zhì)是一棵樹(shù)但繪制時(shí)我們只需要知道「每一層、每個(gè)葉子列屬于哪個(gè)分組、這個(gè)分組跨幾列」。用跨度數(shù)組比用樹(shù)節(jié)點(diǎn)更省事因?yàn)?paintSection 是按 logicalIndex 逐個(gè)調(diào)用的扁平結(jié)構(gòu)查起來(lái)快。假設(shè)有 6 個(gè)葉子列兩層表頭第一層兩個(gè)分組各跨 3 列第二層就是 6 個(gè)獨(dú)立列。跨度數(shù)組這樣表示// 第一層兩個(gè)分組各跨 3 列 // 第二層6 個(gè)葉子各跨 1 列 QVectorQVectorint spans { {3, 3}, // 第 0 層 {1, 1, 1, 1, 1, 1} // 第 1 層 };再配一份每層的顯示文本索引和跨度數(shù)組對(duì)應(yīng)QVectorQVectorQString labels { {溫度組, 濕度組}, {當(dāng)前值, 上限, 下限, 當(dāng)前值, 上限, 下限} };這里有個(gè)容易搞混的點(diǎn)跨度數(shù)組的每一層長(zhǎng)度不一定相同。第 0 層只有 2 個(gè)元素第 1 層有 6 個(gè)。繪制時(shí)不能拿 logicalIndex 直接去索引第 0 層得先算出這個(gè)葉子列在第 0 層落在哪個(gè)分組里。我一般寫(xiě)個(gè)輔助函數(shù)做映射避免在 paintSection 里塞一堆循環(huán)。3.2 從葉子列反查每層分組索引反查邏輯是從最底層往上推每層用累加跨度確定當(dāng)前列屬于哪個(gè)分組。下面這個(gè)函數(shù)返回一個(gè)數(shù)組第 i 個(gè)元素是 logicalIndex 在第 i 層所屬的分組下標(biāo)。// 輸入spans 跨度數(shù)組logicalIndex 葉子列號(hào) // 輸出每層的分組下標(biāo)長(zhǎng)度等于層數(shù) QVectorint MultiLevelHeaderView::groupIndexPerLevel( const QVectorQVectorint spans, int logicalIndex) const { QVectorint result; int remaining logicalIndex; // 從最底層往上逐層定位 for (int level spans.size() - 1; level 0; --level) { int acc 0; int group 0; for (int i 0; i spans[level].size(); i) { acc spans[level][i]; if (remaining acc) { group i; break; } } // 換算到上一層的列偏移 int offset 0; for (int i 0; i group; i) { offset spans[level][i]; } remaining offset; result.prepend(group); } return result; }這個(gè)函數(shù)的參數(shù)說(shuō)明spans是前面定義的跨度數(shù)組logicalIndex是當(dāng)前正在繪制的葉子列號(hào)。返回值result的第 0 個(gè)元素對(duì)應(yīng)最頂層分組最后一個(gè)元素對(duì)應(yīng)最底層。邏輯上它做了兩件事先在當(dāng)前層用累加和找到分組再把「當(dāng)前列在該分組內(nèi)的偏移」換算成上一層需要定位的列號(hào)。這樣逐層往上每層都能拿到正確的分組下標(biāo)。有個(gè)邊界要注意如果 spans 某一層的累加和和葉子列總數(shù)對(duì)不上remaining 會(huì)越界畫(huà)出來(lái)的分組會(huì)錯(cuò)位。我一般會(huì)在設(shè)置 spans 時(shí)加一句斷言assert(累加和 columnCount())早發(fā)現(xiàn)比晚調(diào)試強(qiáng)。3.3 在 paintSection 里按層畫(huà)矩形拿到每層分組下標(biāo)后繪制就順了對(duì)每一層算出該分組的起始列和結(jié)束列把它們的 section 位置合并成一個(gè)矩形畫(huà)背景、邊框和文字。void MultiLevelHeaderView::paintSection(QPainter *painter, const QRect rect, int logicalIndex) const { if (m_levelSpans.isEmpty()) { QHeaderView::paintSection(painter, rect, logicalIndex); return; } QVectorint groups groupIndexPerLevel(m_levelSpans, logicalIndex); int levelHeight height() / m_levelSpans.size(); for (int level 0; level m_levelSpans.size(); level) { int group groups[level]; // 算該分組覆蓋的列范圍 int startCol 0; for (int i 0; i group; i) { startCol m_levelSpans[level][i]; } int endCol startCol m_levelSpans[level][group] - 1; // 用 sectionViewportPosition 拿列在視口中的 x 坐標(biāo) int x1 sectionViewportPosition(startCol); int x2 sectionViewportPosition(endCol) sectionSize(endCol); QRect cellRect(x1, level * levelHeight, x2 - x1, levelHeight); // 只畫(huà)當(dāng)前列負(fù)責(zé)的那部分避免重復(fù)繪制 if (logicalIndex ! startCol) { continue; } painter-save(); painter-fillRect(cellRect, QColor(0xE8, 0xEE, 0xF7)); painter-setPen(QColor(0xB0, 0xBE, 0xD0)); painter-drawRect(cellRect.adjusted(0, 0, -1, -1)); painter-setPen(Qt::black); painter-drawText(cellRect, Qt::AlignCenter, m_levelLabels[level][group]); painter-restore(); } }這段代碼有幾個(gè)關(guān)鍵參數(shù)和邏輯。levelHeight是每層的固定高度用總高度除以層數(shù)實(shí)際項(xiàng)目里我會(huì)按字體度量動(dòng)態(tài)算避免高 DPI 下文字被壓扁。sectionViewportPosition返回的是列在視口中的實(shí)際 x 坐標(biāo)它已經(jīng)包含了橫向滾動(dòng)偏移所以滾動(dòng)時(shí)表頭和數(shù)據(jù)區(qū)能對(duì)齊這是自定義方案比雙 view 強(qiáng)的地方。if (logicalIndex ! startCol) continue;這行很重要每個(gè)分組只在它的起始列繪制一次否則同一個(gè)分組會(huì)被它覆蓋的每一列各畫(huà)一遍文字重疊成一團(tuán)。m_levelLabels就是前面那份文本數(shù)組索引方式和 spans 一致。繪制順序上先畫(huà)背景再畫(huà)邊框最后畫(huà)文字保證文字不被邊框壓住。顏色我用了偏冷的淺藍(lán)灰工業(yè)軟件里長(zhǎng)時(shí)間看眼睛不累具體值可以按項(xiàng)目 UI 規(guī)范改。4. 列寬、排序和滾動(dòng)的聯(lián)動(dòng)處理4.1 列寬變化時(shí)重算分組矩形多級(jí)表頭最容易出問(wèn)題的地方是列寬。用戶拖動(dòng)某一列的分隔線那一列變寬它所屬的分組矩形也得跟著變。好在 paintSection 每次重繪都會(huì)重新調(diào)sectionViewportPosition和sectionSize所以只要在列寬變化時(shí)觸發(fā)一次 viewport 更新就行。// 在構(gòu)造函數(shù)里連接信號(hào) connect(this, QHeaderView::sectionResized, this, [this](int, int, int) { // 列寬變了整個(gè)表頭視口重繪 viewport()-update(); });sectionResized信號(hào)帶三個(gè)參數(shù)logicalIndex、oldSize、newSize。這里不需要用它們做計(jì)算因?yàn)槔L制時(shí)是實(shí)時(shí)查 sectionSize 的只要觸發(fā)重繪即可。注意是viewport()-update()而不是update()QHeaderView 的實(shí)際繪制區(qū)域在 viewport 上調(diào)錯(cuò)對(duì)象會(huì)出現(xiàn)「數(shù)據(jù)變了但畫(huà)面沒(méi)刷新」的玄學(xué)現(xiàn)象我在這上面浪費(fèi)過(guò)半小時(shí)。4.2 排序開(kāi)啟后表頭索引的坑如果表格要支持點(diǎn)擊表頭排序setSectionsClickable(true)和setSortIndicatorShown(true)都得開(kāi)。但多級(jí)表頭下有個(gè)坑排序指示器默認(rèn)畫(huà)在 section 的右側(cè)而多級(jí)表頭里一個(gè)分組跨多列指示器會(huì)畫(huà)在分組中間某一列上看起來(lái)像畫(huà)錯(cuò)了位置。處理辦法是重寫(xiě)paintSection時(shí)自己控制指示器或者干脆把setSortIndicatorShown(false)關(guān)掉在分組文字旁邊用一個(gè)小三角自繪。我一般選自繪因?yàn)榕判驙顟B(tài)和分組狀態(tài)的視覺(jué)關(guān)系需要自己掌控。// 在畫(huà)分組文字后如果該列是排序列補(bǔ)一個(gè)小三角 if (logicalIndex sortIndicatorSection()) { QPolygon arrow; int cx cellRect.right() - 12; int cy cellRect.center().y(); if (sortIndicatorOrder() Qt::AscendingOrder) { arrow QPoint(cx - 4, cy 3) QPoint(cx 4, cy 3) QPoint(cx, cy - 3); } else { arrow QPoint(cx - 4, cy - 3) QPoint(cx 4, cy - 3) QPoint(cx, cy 3); } painter-setBrush(Qt::darkGray); painter-drawPolygon(arrow); }sortIndicatorSection()返回當(dāng)前排序列sortIndicatorOrder()返回升序還是降序。這段代碼把三角畫(huà)在分組矩形的右邊緣內(nèi)側(cè)位置固定不會(huì)因?yàn)榉纸M跨度變化而漂移。參數(shù)上cx和cy控制三角位置12是距右邊緣的像素按實(shí)際邊距調(diào)。4.3 橫向滾動(dòng)時(shí)的對(duì)齊驗(yàn)證滾動(dòng)對(duì)齊是檢驗(yàn)多級(jí)表頭是否合格的硬指標(biāo)。驗(yàn)證方法很簡(jiǎn)單把表格拉窄到出現(xiàn)橫向滾動(dòng)條拖動(dòng)滾動(dòng)條觀察表頭分組邊界和數(shù)據(jù)區(qū)列邊界是否始終重合。如果出現(xiàn)偏移八成是繪制時(shí)用了sectionPosition而不是sectionViewportPosition。前者返回的是邏輯位置不含滾動(dòng)偏移后者才是視口內(nèi)的實(shí)際位置。這個(gè)區(qū)別在單層表頭里不明顯因?yàn)槟J(rèn)繪制幫你處理了一旦自己畫(huà)就暴露出來(lái)。我一般會(huì)在開(kāi)發(fā)階段加一個(gè)臨時(shí)的調(diào)試?yán)L制把每個(gè) section 的 viewport 位置畫(huà)成豎線和數(shù)據(jù)區(qū)的列線對(duì)比確認(rèn)無(wú)誤后再去掉。這個(gè)土辦法比盯著屏幕猜快得多。5. 避坑與常見(jiàn)問(wèn)題排查5.1 表頭畫(huà)出來(lái)了但高度不夠被裁掉現(xiàn)象代碼里明明畫(huà)了三層界面上只看到兩層最上面一層被切掉一半。原因sizeHint返回的高度不夠或者沒(méi)重寫(xiě)sizeHintQHeaderView 用了默認(rèn)的單層高度。解決重寫(xiě)sizeHint返回層數(shù) × 每層高度并且每層高度要按QFontMetrics::height()加邊距算不能寫(xiě)死 20 這種值高 DPI 屏上會(huì)翻車。5.2 分組文字重復(fù)繪制導(dǎo)致加粗發(fā)虛現(xiàn)象分組標(biāo)題看起來(lái)比預(yù)期粗像被描了兩遍。原因paintSection 對(duì)分組覆蓋的每一列都調(diào)用了如果沒(méi)加logicalIndex ! startCol的判斷同一個(gè)分組會(huì)被畫(huà)多次文字疊加。解決每個(gè)分組只在起始列繪制其余列直接 return。這個(gè)坑在跨度大的分組上特別明顯因?yàn)榀B加次數(shù)多。5.3 列寬拖動(dòng)后表頭和數(shù)據(jù)區(qū)錯(cuò)位現(xiàn)象拖動(dòng)列寬后表頭分組邊界和數(shù)據(jù)區(qū)列邊界對(duì)不上差幾個(gè)像素。原因繪制時(shí)用了緩存的列寬值沒(méi)實(shí)時(shí)查sectionSize。解決所有位置計(jì)算都走sectionViewportPosition和sectionSize并在sectionResized信號(hào)里觸發(fā)viewport()-update()。緩存列寬是性能優(yōu)化的常見(jiàn)做法但在多級(jí)表頭里得不償失。5.4 排序指示器畫(huà)在錯(cuò)誤的分組上現(xiàn)象點(diǎn)擊排序后小三角出現(xiàn)在分組中間某一列而不是分組邊緣。原因用了默認(rèn)的排序指示器繪制它按 section 定位不理解分組概念。解決關(guān)掉setSortIndicatorShown在 paintSection 里自繪三角位置按分組矩形算。自繪時(shí)注意三角的坐標(biāo)要基于cellRect不要基于rect因?yàn)閞ect是單個(gè) section 的矩形不是分組矩形。5.5 高 DPI 屏上表頭文字模糊現(xiàn)象在 4K 屏或縮放 150% 的環(huán)境下表頭文字發(fā)虛邊框線粗細(xì)不均。原因繪制時(shí)用了整數(shù)坐標(biāo)沒(méi)有考慮設(shè)備像素比。解決在 paintSection 開(kāi)頭用painter-setRenderHint(QPainter::Antialiasing, true)和TextAntialiasing坐標(biāo)計(jì)算用qreal而不是int最后再取整。另外sizeHint里的每層高度要乘devicePixelRatio否則物理像素不夠文字會(huì)被壓縮。6. 把多級(jí)表頭封裝成可復(fù)用組件的一個(gè)技巧寫(xiě)到這兒核心邏輯已經(jīng)齊了但每次新項(xiàng)目都復(fù)制一遍 paintSection 不現(xiàn)實(shí)。我的習(xí)慣是把層級(jí)定義抽成一個(gè)獨(dú)立的配置結(jié)構(gòu)讓 MultiLevelHeaderView 只認(rèn)這個(gè)結(jié)構(gòu)不認(rèn)具體業(yè)務(wù)。// 層級(jí)配置每層一個(gè)標(biāo)簽數(shù)組和一個(gè)跨度數(shù)組 struct HeaderLevel { QVectorQString labels; QVectorint spans; }; // 一次性設(shè)置所有層級(jí) void MultiLevelHeaderView::setLevels( const QVectorHeaderLevel levels) { m_levelSpans.clear(); m_levelLabels.clear(); for (const auto lv : levels) { m_levelSpans.append(lv.spans); m_levelLabels.append(lv.labels); } m_levelCount levels.size(); // 觸發(fā)高度重算和重繪 updateGeometry(); viewport()-update(); }這個(gè)封裝的好處是業(yè)務(wù)代碼里只需要構(gòu)造QVectorHeaderLevel不用碰繪制邏輯。換項(xiàng)目時(shí)把 MultiLevelHeaderView 整個(gè)文件拷過(guò)去改一下顏色常量就能用。updateGeometry()會(huì)觸發(fā)sizeHint重新計(jì)算保證層數(shù)變化后高度跟著變這一步漏了會(huì)出現(xiàn)「設(shè)了三層但高度還是兩層」的問(wèn)題。驗(yàn)證封裝是否成功我有個(gè)固定流程先設(shè)兩層各跨 2 列看分組邊界再改成三層看高度是否自動(dòng)增加然后拖動(dòng)列寬看邊界是否跟隨最后點(diǎn)排序看三角位置。四步都過(guò)這個(gè)組件才算能進(jìn)項(xiàng)目。說(shuō)個(gè)我自己的教訓(xùn)。早期我圖快把層級(jí)數(shù)據(jù)直接寫(xiě)死在 paintSection 里結(jié)果第二個(gè)項(xiàng)目要改分組數(shù)量我花了半天在繪制代碼里找硬編碼的索引。后來(lái)改成配置驅(qū)動(dòng)同樣的需求十分鐘搞定。多級(jí)表頭這種和業(yè)務(wù)強(qiáng)耦合的 UI 組件繪制邏輯和數(shù)據(jù)結(jié)構(gòu)一定要分開(kāi)不然維護(hù)成本會(huì)指數(shù)級(jí)上升。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
裸体女人草逼视频播放一区,二区,三区,四区,五区 | 青青草丝袜在线视频| 无码操逼天堂| 国产精品丝袜久久亚洲不卡| 国内91熟女人妻丝袜天天精品视频在线 | 九九九不卡| 禁止观看美女黄| 日韩激情中文字幕有码| 2023天天操夜夜操| 麻豆成人AV| 黄色不卡视频| 亚洲综合骚逼| 97综合国产精品高潮久久| 天天肏夜夜肏| 不卡啪啪视频| 福利在线观看一区二区| 8050午夜少妇无码| 精品国产精品一区二区| 久99视频| 亚洲第一狼人丝袜美女另类| 欧美色视频在线| 四季AV综合网址| 日本高清免费一本视频在线观看| 婷婷综合网| 性色av大全| 久久精品男人的天堂| 欧洲亚洲人妻无码中字久久三区四区 | 熟妇女伦乱视频| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 麻豆黄站| 91高清欧美| 欧洲亚洲人妻无码中字久久三区四区 | 久久精品99| 国产理论视频在线播放| 大学生口爆吞精| 91狠狠综| 国产女同视频在线播放| 波多野42部激情无码喷潮| 久久久蜜桃臀无码视频| 青青在线视频日韩欧美| 日本孕妇孕交| 久久免费9| 综合色区偷拍| 婷婷爽人人婷婷爽视频| 女生看匆91网站| 欧美色另类| 东京热91| 亚欧视频在线| 久久久夜夜嗨免费视频| 久久成人国产精品| 激情五月婷婷| 99热在线播放| 天天日天天舔东京热| 人妻丝袜无 码视频专区| 香蕉99秘 精品一区丁香| 日本色色色| 老师充足的奶水小说| 蜜臀精品1区2区| 日本三级久| 成人综合网 欧美| 超碰97在线 欧美 国产| 亚洲青青草| 精品一区二区久久| 人妻丝袜美腿中文字幕| 粉嫩粉嫩一区性色AV片| 人人污日韩一区二区| 欧美熟妇视频 | 青娱乐黄色录像| 女人综合网| 加勒比综合| 俄罗斯及免费在线看| 7777奇米影视久久| 丝袜美腿制服人妻二区中文字幕| 久久天堂婷婷网| 国产av白丝| 330dv亚洲成年视频网| 综合一区二区影视| 91av一区二区在线观看| 国语精品内射在线观看| 五月天开心网| 大屁股国产在线视频| 人妻 欧美亚洲| 最新无码国产| 日韩乱伦视频| 久久精品72| 欧美熟女逼久久久久久| 91搞逼视频| 婷婷丁香五月激情啪啪| 蜜区区视频79| 丁香五月色| 亚洲综合性感在线| 友优传媒精品在线一区二区| 91日韩国产欧美亚洲另类精盘州至城都| 国产激情视频一区区三区| 超碰97人妻免费在线| 蜜臀操逼黄色视频操的好爽| 欧美大干日韩| 无码精品人妻一区二区三区妖精 | 色九九九综合| 亚洲色图A| 久久精品日韩| 亚洲伊人久久精品狠狠在线| 久久性爱视频99| 成年人一级黄色毛片大全在线观看| ?亚洲伊人伊成久久人综合网| 美女在线H91| 伊人久大| 每日更新AV| 嗯嗯嗯嗯啊啊啊好紧好大| 激情婷婷丁香网| 日本成人A片网站| 动漫片子网站3黄| 91观看 国产白丝| 手机午夜电影神马久久| 日本人体九九九九九九| www.亚洲黄色| 国产乱青青草久久| 18禁网站在线播放| 成人片视频| 99久久亚洲精品无码毛片潘甜甜| 日韩情色视频| 亚州综合在线| 九九视品黄色| 日韩肏逼视频| 日韩啪啪啪视频| 男人天堂网址| 欧美精品99久久久| 久久久久久久唑| 爱媛媛久久国产福利| 亚洲日本大香蕉1| 精品国产人成在线| 亚州Av天美传媒| 亚洲AV无线| 91路www| 欧美高清18A片| 日韩精品电影| 亚洲最新a在线观看| 日本东京热大香蕉a片| 欧美高清无码免费视频高清版| 极品五月天噜噜| 日本一区二区中文字幕久久| 91红杏| AV一区观看| 天堂伊人久久| 久久色情| 亚洲 欧美 制服 另类 自拍| 97爱啪| 欧美激情中文字幕另类小说| 超碰人妻久久| 亚洲视频一二区| 国产92麻豆天美精品色欲5| 91天天综合在线观看| 国产超碰| 国产成人亚洲精品无码古代早漏男 | 天天操天天7| 色婷婷丁香| 久久伊人影院| 偷拍 精品 另类 四区| 天天日天天操天天射河南省| 久久九精品| 国产成人在线观看综合| 欧美91精品国产自产| 亚洲网自拍| 日本视频一区二区三区| 69一区二区三区| 97色爱| 一区二区三区精品视频| 夜夜躁狠狠躁日日躁av| 蜜桃狠狠色伊人亚洲综合 | 色臀av| 久草精品国产蜜臀 | 久热这里| 九九综合久久中文字幕| 欧美岛国精品在线观看| 久久精品高清无码一区| 狠狠躁天天躁日日躁97| 天天影视综合网欧美精品| 尤物网址| 2019天天干| 欧洲一区二区| 欧美老妇女内射网址| 丁香五月AV| 激情小说日韩无码| 综合激情二| 日韩精品系列| 亚欧美综合网。| 97天天爽| 五月天激情综合网| 永久免费发布性爱网| 亚州综合色| 特污精品女优骚货黄色视频在线免费观看| AV丝袜少妇| 丝袜内射| 久久发布国产伦子伦精品| 图片区小说区| 日韩人妻制服丝袜av| 国产成人在线观看网址| 色婷婷日韩精品一区二区三区| 99啪啪| 日本熟妇一区二区三区| 91日韩在线| 久草国产在线视频| 亚洲自拍天堂| 欧美精品日韩一区二区| A级国产欧美激情在线| 伊人网在线点播| 午夜综合在线| 九九av| 久久精品老司| 日本久久综合| 日韩久久艹| 超碰在97| 国产一区二区在线看| 精品女同一区| 欧美综合综合| 17c嫩草51久久91嫩草| 91n欧美| 成人怡红院| 玖玖综合网| 亚洲精品97久久| 天天综合官网| 综合国产影视三级| 色翁荡息又大又硬又粗又爽| 日韩免费中文字幕视频| 国产三级在线现体验区| 九九视频黄色片| 1769国内精品视频| 凸凹视频在线观看| 久综合网| 精品人妻一区二区免费蜜桃| 色鬼在线综合| 91日日夜夜| 亚洲激情深爱文学小说网站| 9丨久久九九九| 日本人妻最新在线中| 成人小说视频在线精品欧美| 久久久久久日韩| 日韩成人性爱电影在线播放| 久99| 国产精品3| 天堂亚洲欧美| 久久久久久久久久va| 日韩精品一区二区日韩| 啊好爽受不了无码| AV男人天堂网| 日韩卡一卡二卡三在线| www.色五月| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 一起草欧美| 亚洲欧洲国产综合av| 综合色色婷婷| 久神马| 91精品在线播放| 91精品人妻一品二品三品| 热久久国产| 久久久 国产精品| 人妻在线臀日韩| 97超碰久| 丰满人妻aA一区二区三区| 国产欧美成人第一页在线观看| 久久久国产三级黄色片| 国产精品久久久久绯色| 日韩日韩日韩-国产乱码精品一区二区| 十八禁啪啪视频| 中文字幕日本久久| 亚洲精品蜜桃久久久久久久| 国产精品美女视频诱惑| 免费看欧美美女黄色大片| 精品射1999| 97日韩欧美亚洲| 国产在线视频二区| 久久久无码国精品无码三区三区| 校园春色 亚洲| 人人么人人操| 日本三级中国三级99人妇网站| 午夜欧美神马久久久久| 亚洲性爱电影| 91是天天| 欧差乱伦二三| 午夜福利久久久噜久噜久久综合| 在线观看中文字幕| 久久三| 欧美性暴力猛交XXXX| 青青草公开在线免费不卡视频| 亚洲国产精品9999在线观看| 久久99国产综合精品女同| 桑老女人九区| 大香蕉免费乱伦视频| 人妻人人澡人人爽人人| 色综合一本| 亚洲欧美大| 中文字幕文字幕无码一区二区三区电影99| 国内偷拍精品一区二区| 精品然女一区二区| 眼镜人妻101.com| 精品97久久综合| 一区二区乱码福利| 91丝袜美腿网站| 久久色精品视频在线| 色爱综合网| 91精品国产91熟女| 欧美熟爽综合| 久久久亚洲| 日本淫色网| 亚洲欧美色图片| 日本天天人人狠狠在线日美女| 久久人妇| 激情综合久久| 九九人妻| 丁香九月婷婷| TS人妖另类精品视频系列| 天天色香欲综合网| 久久午夜鲁丝片| 美女大乳久久久久久久女人18| 国产精品久久久久久久无码AV| 爱干爱射网啊啊啊| 成人乱码一区二区三少妇| 尤物视频网 刘玥| 欧美日韩国产高清在线一二三区| 亚洲熟妇AV日韩熟妇在线| 欧美人妻一区| 香港澳门日本三级网站| Julia Annxxxxx| 九月丁香婷婷| 日本东京热久久久电影| 亚洲天堂电影网| 在线v中文字幕一区二区三区 | 国产中文字幕在线观看| 射 色综合| 狠狠久久手机视频精品| 欧美激情 一区| 天天日少妇逼AV| 国产精品久久久久无码Av网曝门| 色色色色色色色色综合| 操少妇很爽av| 韩国午夜理伦三级好看| 日少妇视频| 欧美久久婷婷| 少妇一线天久久久久久| 青青青国产手线观看视频2| 欧美专区17页| 久久婷婷色综合一区二区三区| 三级激情网站| 久久专区| 麻豆色约约| 亚洲 日本 一 二 三| 中文字幕丝袜国产第一页不卡| 大香蕉伊在线久草麻豆天堂故事| 五月激情视频| 日本精品一级二级三级| 欧美亚洲特P| 男人天堂久久日韩| 蜜桃臀av在线观看| 中文字幕日本久久| 五十路六十路七十路熟婆| 色淫网站优优视频| ...日韩成人一区二区三区字幕| 97AV爱| 一区二区三区免费岛国片| 欧美性爱第1 页| 亚洲影视第一页| 日本天天干天天搞一区| 免费人人搞97| av情色影音| 九九精品热| 精品区国产区一区二区三区| 无码日韩人妻av一| 26uuu偷拍亚洲欧洲综合| 久久久久女教师免费一区| 国产熟女二区| 久久精品72| 天堂资源欧美| 亚洲18禁| 91暧暧| 久热无码| 射 色综合| 久久综合九色综合欧洲98| 这里是精品| 伊人玖玖网| 婷婷五月综合在线| 色噜噜精品一区二区三| 亚洲免费人妻在| 国内毛片国产专区二| 国产AV久久久蜜爱影集| 91快色色色色色| 黄色免费网页无码| 凹凸视频特色日本特黄| 成人aⅴ一区二区三区| 日本肉体xxxx裸交| 亚洲精品蜜桃久久久一区二区三区| 99爱久久视频频| 97一区二区三区视频| 美女骚尻视频| 欧美成人免费在线观看| 亚洲欧洲综合av在线| 屌色在线97视频| 色偷偷超碰亚洲| 密乳AV免费观看| 人人操人人肉久久精品| 伊人天天久久动态图| 无码精品久久| 日韩人妻资源网| 青青草原av| 国产操操日韩三级黄| 这里只有精品视频在线| 日本精品性生活久久久| 丰满人妻被猛烈进入中| 大香蕉免费中文| 麻豆黄站| A久久| 久久久久久久久国产| 不卡中文字幕aⅴ在线| 亚洲日本韩国在线| 美女爽爽爽刺痛洞洞| 日韩人妻一区二区| 久久免费中文字幕在线观看| 极品美女嘿咻| www.色操逼| 日韩精品国模| 日韩成人精品| 老司机午夜福利视频一区二区| 一本大道久| 这里只有精品视频在线| 肥臀熟女一区二区三区视频| 婷婷色导航| 91欧| 亚洲熟妇图片| 亚欧洲日韩国产精品| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美一区二区观看在线| 97视频900| 五月天婷精品激情| 超碰97护士| 91九色网| 激情五月综合| 99999久久精| 亚洲少妇激情视频| 东北少妇高潮zzzz| 老熟妇综合| 亚洲1区2区三区高清中文字幕| 久草毛片| 国产精品网站www| 亚洲一卡2卡3卡4卡乱码网站| 亚洲一区制服诱惑| 亚洲欧美激情在线视频| 国产suv一区二区三区6| 91亚洲欧美色图| 国产探花精品在线| 日韩小电影| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 吻戏激情性巴克| 人人干人人操人人爱| 人妻 欧美亚洲| 用力操死我| 桃花色涩综合影院| 性色av大全| 校园春色亚洲色图| 97网址97| 日韩中文字幕宗合在线| 国产美脚女优尤物在线观看| 亚洲中文字幕av| 国产精品嫩草久久久久| 在线a亚洲视频播放在线| 日本五区不卡| 四虎影视永久在线观看精品免费网站| 青青草视频在线观看一区二区| 睡产熟女乱伦| a天堂视频| 日本十八禁免费看污网站| 国产精品操| 9997se| 国产外初女出血视频| 免费福利视频中文字幕| 人妻少妇久久中文字幕一区二区 麻豆| 日本淫乱女一区二区三区视频| 久久久久九九九| 蜜臀久久精品久久久久视频| 100啪啪视频大全| 91精品人妻| 99热伊人| 神马久久久久| 欧美区亚洲区偷拍区| 欧美十八禁视频| 嫩草一区二区在线观看| 激情接吻视频久久久久久| 久久久亚洲高清不打码| 婷婷午夜成人色中色| 色乱二区| 五月天色五月| 日韩八十路老熟女| 日本 情色 1区| 女生91网站| 在线视频免费观看午夜| 三级AV入口| 日本理论在线| 亚洲 欧美 小说| 九九人妻| 亚洲自拍偷拍视频在线| 亚洲强奸乱伦影视网| 激情五月婷婷| 大香蕉 222| 色欧美色交综合| 大屁股人妻女教师撅着屁股| 亚洲欧洲日韩国产自在线| 久久99久久99久久99人受| 歐美一級亂黃99在綫精品| 97色欧洲| 中文字幕一区二区日韩网| A片三级无码| 宗合情欲网| 超碰97COm中文| 日韩激情无码影院| 免费的黄片有限公司| 日韩成人性爱AV| 美国美女AV在线| 天天综合站| 91人妻精华帖| 伊人97色天使| 五十路六十路素人熟女| 欧美亚州手机在线| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 男女啊啊啊| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 美日韩成人| 麻豆一区在线| 亚洲另类欧美精品| 亚洲AV免费在线观看| 欧美双插| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 久久黄黄黄| 亚洲色图日韩精品| 亚洲交换| 国产日韩区| 国产av色网| 国产三级中文有码在线视频| 丝袜美腿射精91| 精品在线观看视频在线| 日韩综合97P| 日韩欧美午夜视频在线| 亚洲在钱| 少妇被玩视频二三区| 青春草莓视频在线观看网址| 久妇网| 日韩三A大片在线观看| 国产熟女| 九九热超碰| 波多野42部激情无码喷潮| 色av中文字幕| 亚洲欧洲日韩国产自在线| 精品国产乱码久久久影院| 色婷婷久久| 乳欲人妻办公室奶水| 国内一区二区三区| 天天91~综合入口| 午夜超碰| 岛国不卡超碰护士AV在线播放| 顶级丝袜熟女一区二区三区| 看日韩黄片| 色偷偷综合91久久噜噜| 色月天AV导航| 五月丁香| 久久久久亚洲?V片无码V| 亚洲加勒比| 日韩大香蕉精品在线视频| 久久久人体| 国产精品视频白浆免费| 熟女六十路| 99精彩视频| 91在线免费观看处女| 人妻精品一区一区三区蜜桃91| 激情四射五月天| 中文字幕日韩精品久久| 国产精品一级二级在线| 美女91在线观看| 蜜桃中文字日产乱幕4区| 欧亚在线视频| 免费作爱一级视频| 午夜视频好爽啊| 成人五月天丁香激情综合| 天天躁日日躁狠狠狠躁| 全国男人天堂网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久久久久久久免费A片国产成a人亚洲精∨品无码 | 人妻-91porn| 午夜偷拍久久熟女| 日韩欧美中文| 精品人妻av在线播放| 亚洲一区二区三区播放在线| 午夜福利在线合集| 国产精品成人蜜臀AV在线| 天天谢天天干| 亚洲天堂7777| 日本网色| 久久夜色一区二区| 欧州激情视频在线一区二区| 懂色AV中文| 北条麻妃性愛视频| 亚洲的天堂网| 青青在线视频日韩欧美| 日韩无码极品| 做爱A级亚欧| 午夜福利视频在线一区| 激情六月婷婷| 国产日韩人人| 日本在线伊人啪啪| 国产精品久久久久久久久久久久| 久操精品| 乱伦图av| 狠狠热这里都是精品| 偷拍片久久| 久久久91| 在线一道啪| 欧美拳交在线播放| 亚洲激情久久| 日韩精品碰碰| 国产狂喷潮在线精品| 飘花国产午夜精品不卡| 爆操无码| 91色伦综合| 中国一级αV| 乱伦Av网| yazhousetuoumei| 97bbn| 九热中文字幕| 很很热性爱视频| 久草男人天堂| 在线毛片片免费观看| 97综合在线| 久久9精品网站| 亚洲欧洲自拍图片专区满春格| 欧美成人一级免费电影| 久久国模av| 人人搞人人插人人操| 97天天摸天天碰| 亚洲精品国产拍免费91在线| 天天操综合网| 精品少妇一区二区三区| 国产性爱乱伦AV| 亚洲天天影视色综合| 久久精品人人做人人看| 欧美性色综合网| 亚洲国产成人精品久久久国产成人一区二区| 妺妺跟我一起洗澡没忍住| 夜夜国产一区| 中文字幕国产在线天堂| 97爱欧美| se01国产在线视频| 麻豆伊人网| 国产亚洲深夜激情| 大香蕉92| 亚州国产精品乱| 国产99999| 人妻精品综合中文字幕在线| 嗯~啊~快点 死我视频免费看网站| 性爱精品一区| 春色综合网| 无码国产Av| 九九久精品| 浪人综合网| 久久后入制服| 亚洲操操操| 性久久| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 一个色导综合| 久久9亚洲| 亚州久久9| 高潮毛片无遮挡高清免费| 麻豆AV短剧| 婷婷五月成人| 人人贴人人摸| 欧美色蜜桃97| 试看福利| 久久婷婷色综合一区二区三区| 国产精品久久久久久 百度| 熟女熟妇一区二区三四区| 日本一天色道久久久精品视频| 国产精品一区二区 尿失禁| 久操操AV电影| 久久久亚洲精品中文字幕人妻| 性生活久久久久久久久久| 欧美一级做a爰片免费视频| 在线视频 亚洲精品| 亚洲综合色图欧美| 欧美 熟女 日韩| 96精品在线| 久久曰曰| 天堂69亚洲精品中文字| 久久久96| 91东京热男人的天堂| 躁躁日曰躁2020| 丰满欧美少妇| 性色高清在线| 精品久久久久,69国产成人精| 欧亚免费视频| 日韩成人大片在线观看| 嫖老熟女A片一二三区| 乱伦Av网| 亚洲成人一区二区精品| 日本色色视频网站| 久久久久久久强迫| 99老司机精品视频在线观看| 久久亚州精品成人Av无| 人人干人人操人人爱| 亚洲在线网站| 国产亚洲精品玖玖玖在线观看| 亚洲欧美日韩二区视频| 国产乱伦亚洲| 欧美一级做a爰片免费视频| 99久热| 香蕉一区二区三区在线视频| 午夜呻吟欧美| 青青草国产亚洲精品久久| 鸥美插入视频| 欧美综合色综合| 18+91网站| 国产精品美女久久久久久网站| 蜜臀中文无码午夜| 91骚熟女| 天天综合网日韩7799| 亚洲色图亚洲无码强奸乱伦| 亚洲成人碰碰| 日本顶级天天操狠狠操夜夜操中文字幕| 亚州国产成人精品女人久久 | 乱人乱色一区二区三区免费| 26uuu最新| 正宗无毛一线天嫩逼| 夜夜性| 亚洲图片日本AⅤ欧美在线| 国产一区二区欧美日本| 日韩ab网| 欧美亚洲中文| 极品美女福利在线观看| 人人色人人操在线| 97精品97| 91大神精品长腿在线观看网站| 亚洲黄色网址视频| 99在线视频播放| jizz啪啪| 91丝袜美女| 97精品一区二区视频在线观看| 国产精品美女在线一区| 99久久com免费视频′| 色欧美在线| 人人操人人摸人| 日本一片一区| 秋霞一集毛片观看| ,国产乱人伦精品一区二区三区| 97 国产精品| 免费精品福利在线观看| 色噜噜人妻丝袜AV资源| 啊啊啊啊啊啊在线| 亚洲欧美大| 国产综合色精品在线观看| 九九在线视频| 天美传媒麻豆一区二区三区国产精| 在线可观看的黄色网址| 2020天天色综合| www久久99| 久久精品超碰| 亚洲 图片 综合91| 国产日韩欧美操逼视频| 蜜臀久久99精品久久久久免费观| 大色综合| 麻豆性爱视频在线播放 | 亚码激情| 国产免费黄色一级大片| 黄网站黄视频网站进入口| 欧美真人抽搐一进一出gif | 韩国一级做a久久久久| 超碰色综合| 日本少妇va7777| 超碰九九| 久草资源欧美在线视频| 国产精品久久成人免费| 9久9久| 成人五月香网在线| 国产精品露脸在线观看| 欧美天天综合站| 99热91| 国产精品一二三在线看| 久久久久少妇| 欧洲一区二区三区四区在线观看| 欧亚乱色熟一区二区三四区| 操逼www.| 男人的天堂 在线一区| 亚洲熟女乱综合一区二区三区 | 日本在线观看网址| 大香蕉www.超碰| 欧美春色| 91AV老熟女视频| 日韩性爱播放| 秋霞曰韩R级| 日韩在线观看字幕精品| 亚洲精品国产无码高清| 91狠狠综合网| 草草草视频| 国产精品一区二区三| 亚洲天堂电影网99999| 久久视频少妇美女| 美女丝袜激情小说| 亚洲精品骚逼| 亚洲91网站| 2017大香蕉国产精品久久| 天美精品一区二区三区四区在线观看| 久久国产精品一级二级三级| 婷婷尹人大香蕉免费| 超踫中文字幕| 人妻熟女字幕一区二区| 狠狠 91| 91逼逼女人91| 欧美激情久久久久| 在线色资源| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 国产精品高潮久久AV| 亚洲中文字幕乱码无码一区二区| 天美传媒AV国产在线| 天操老女人| 青青草国产一区二区三区| 九九亚洲精品| 久久久久久少妇| 久久线上视频免费看| 久久久久久性爱免费视频| 97精品一区二区视频| 黄色片,com| 精品在线观看视频在线| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 97人亚洲综合字幕| 日本超碰色精品| 热99re69精品8在线播放| 在线有码中文字幕| 99色在线| 久久久久久久久久久999| 久久9999 | 国产热av| 久久久久久人妻一区精品色欧美| 久久欧美性爱视频| 激情99| 亚洲男人天堂2| 久久中文字幕不卡人妻| 思思性爱| 蜜桃狠狠色伊人亚洲综合 | 亚洲色交| 欧美成人精品A片免费一区99| 97人人爱人人做人人乐| 欧美草草高清日韩视频| 激情啪啪拍91| 久久鲁夜| 一区AV| 国产午夜视频| 久久久久9999| 校园春色 男人天堂 | 一区在线观看中文字幕| 啊啊啊要高潮了| 欧美激情视频在线一区| 极品丝袜无码| 强奸乱伦免费网站| 97久久精品亚洲中六字幕| 四虎精品一区二区| 超碰调教97| 大奶的诱惑| 99这里有精品| 欧美成人贴图| 久久综合乱子伦国产免费| 九九九九九精品| 熟女啪啪视频| 婷婷干黄色| 天天激色| 九九色婷婷| 国产精品久久久 | 99青草| 欧美日韩性爱电影在线| 新视频sss国产| 超碰人人超在线观看| 国产日韩怡红院| 69超碰综合| 日本操逼视频导航| 96免费视频在线| 国产操逼视频在线观看| 蜜桃臀 后入 一区 二区 三区 在线| 亚洲欧洲中文日韩女优乱码| 97视频在线免费播放| 青草av在线| 日韩欧亚太美不卡| 91美女小视频| 日韩久射综合| 色 亚洲 91| www色日本| 东京太热男人的天堂久久久| 国产成人午夜视频网址| 免费看污网址| 亚洲国产一级黄色视频| 和协影院中文字幕三区| 伊人操| 欧美不卡五十路| 日本精品第一视频在'| 91中文精品日韩欧美在线| 插入粉嫩少妇视频| 欧洲在线性爱视频| 五月丁香综合啪啪| 色妹子A V| 亚洲色图 欧美热图 清纯唯美 另类自拍| 另类图片综合| 国产按摩一区二区三区| 日韩亚洲中文有码视频| 99re在线精品78| 婬女免费一二三区A片| 人妻熟女一区二区三区视频| 日韩内射视频| 日韩欧美中文| 快播久久人人aV| 欧洲射精91| 久久精品性| 吖在线不卡一区二区国产剧情| 国产丝袜啪啪| 日本啊啊啊啊啊视频| 做爱福利视频一区二区| 欧洲性爱无码区| 日韩熟女精一区二区三区不卡| 91少妇通奸网站| 亚洲天天影视综合网| 熟妇视频一区二区三区在线观看| 中亚av| 尤物黄色在线观看网站| 久久久久久69国产一区二区| 精品人妻一区二区三区四区石在线| 色图四区| 久久男人的天堂| 91亚洲高清| 黄片www视频免费| 国产成人拍国产亚洲精品| 天天综合网网欲色| 18禁精品网站在线看| 99色| 中文字幕中文字幕一区二区| 91综合在线| 97人妻免费中文字幕| A久久| 色悠悠伊人网五月天| 天天操人人操狠狠插| 日韩有码免费视频| 四虎av在线| 强奸乱伦麻豆| 日日干夜夜欢| 国产特级毛片AAAAAA高潮流水| 欧美一区91大爱| 影音先锋国产精品| 亚洲高潮少妇| 求求你操操我| 久久精品熟妇丰满人妻99| 黄色片一区二区三区四区五区 | 影音先锋视频在线| 狠狠综合网| 97久久国产亚洲精品超碰热| 一起草视频在线| 深夜国产一区二区三区在线看| 亚洲国产剧情少妇激情| 中文字幕av一区二区三区人妻少妇| 亚洲日韩电影| 青青草中文-久久青草精品一区二区三| 欧美中文字幕一区| 亚洲 小说 欧美 激情 另类| 5278欧美一区二区三区| 亚洲色图国产另类| 十八禁视频一区二区| 电影69乱码96| 亚洲同性aV综合| 1024人妻| 99re这里只有| 夜夜嗨一区二区| 青青草公开在线免费不卡视频| 性爱乱伦网址| 五月天精品| 久久精品国产免费观看99| 亚洲精品久久久久久久久豆丁网| 亚洲国产日韩精品久久久| 狠狠激情综合狠狠操中文字幕| 欧美大色交| 偷拍自拍在线视频观看| www.男人天堂| 99色热| 欧亚日韩中文在线| 福利色色| 啪啪视频免费在线观看| 人妻日日夜夜精品| 久久性生大片免费观看性| 中文一区二区婷婷视频| 99无码狠狠久久| 中文字幕一区二区三四五区日日骚| 18啪啪手机免费性爱| 91精品国久久久久久无码| 精品国产人成在线| 精品少妇一区二区| 欧美日韩国第一区| 亚洲人成网站7777| 日韩中文字幕熟妇人妻| 亚洲暴力强奸AV| 日韩一级二级三级| 99色骚| 在线99热| 国产精品免费日韩| 91亚洲欧美激情| 色综合天天| 国产乱伦性爱区| 啊啊啊骚| 久久人人妻| 首页中文字幕中文字幕免费| 亚洲精品久久久久毛片A片拉屎 | 男人女人18禁片免费看网站| 啊嗯嗯啊好大好爽| 久久国产精品,久久国产| 亚洲综合色婷婷| 免费少妇一区二区| 国产 日韩,欧美 自拍| 少妇色综合| 久操大香蕉手机视频在线看 | 激情欧美日韩女同久久| 久久精品人体AV| 成人 日韩欧美一区| 五月天丁香婷婷综合网站| 亚洲成人性爱网站在线播放| 春色91| 熟妇人妻丰满久久久久久久无码 | 久久久久免费看少妇A片特黄| 91精品国产91久久青草| 91中文字幕在线观看| 一区中文字幕二区日韩| 日韩精品三区四区| 男人的天堂2018东京热啪啪啪| 五月丁香色情| 国模精品一区二区三区苹果色戒| 国产乱色国产精品免费视| 蜜乳AV免费观看| 国产毛片久久久久久久| 欧美大香蕉久| 97色碰| 亚洲精品国产专区在线观看| 99这里只有精品国产| 18禁网站在线播放| 首页中文字幕中文字幕免费| 亚洲一区中文字幕一区| 色五月综合网| 欧美精品另类人妖xxxx| 亚洲综合网图| 日欧毛片久久| 97色操| 1769一区| 自拍偷拍2025在线观看| 国内三级自拍小视频在线观看| 涩五月婷婷| 国产精品久久久视频| 亚洲视频,小说| 欧美狠狠狠| 亚洲最新Av| 亚洲五月天激情| 蜜桃臀 后入 一区 二区 三区 在线| 欧美暴力猛交| 又黄又硬又粗又长国产视频| www国产无码| 熟女色综合久久| 青青草原人妻| 深夜激情 | 婷婷五月天激情四射| 一级做a爰片久久毛片图片| 日本大片日本一区二区免费高清 | 白丝1区2区3区| 婷婷10月天青娱乐| 日本高清免费一本视频在线观看| 成人性爱电影网| 日韩av色图| 67914在线兔费成人视频| 男女性感激情网站| 又黑又大又粗| 欧美色图 色综合图| 国产精品免费日韩| 伊人丝袜美腿高跟在线观看高清 | 亚洲国男人的天堂| 人妻五十路在线| 日韩欧美午夜视频在线| 欧美久久婷| dy888午夜老子影视达达兔| 日韩国产成人自拍视频| 天天做天天爱天天爽AV| 亚洲欧美日韩免费观看| 欧美乱色| 免费观看日本操逼视频| 色av中文字| 亚洲av噜噜噜噜噜噜| 色婷婷99| 国产成人欧美精品在线| 国产欧美精品日韩区二区麻豆天美| 久久精品28| 亚洲色人妻综合| 欧美熟妇成人一区二区| 青青色综合| 欧美亚洲素人制服精品| 97干色天堂| A级国产欧美激情在线| 亚洲中文字幕日产无码久久| 97资源视频| 亚洲图片欧美另类综合免费视频大大香| 亚洲一级性爱视频免费看| 另类老少妇| 人妻少妇久久久| 欧美一区二区福利在线| 欧洲亚洲人人爽爽视频| 久久婷婷五月天| 久久久性| 欧美色图自拍| 欧美综合骚| 久久国产视频性吧 | 综合欧美日韩在线观看| 亚洲欧洲av影音| 国产视频一区二区三区在线免费观看 | 97ai亚洲| 丰满人妻一区二区三区在线| 中文字幕国产| 精品一区二区久久| 日韩乱码av| 久久久一区二区三区三州| 欧美精品,四区。五区| 色香阁在线| 久久精品三级影视| 91在线精品一区二区三区| 色综九九九一区| 嗯……啊…嗯嗯…啊…好舒服| 国产精品免费视频人成| 一级毛片电影免费看| 天天影视综合色| 2019天天操天天爽天天拍| 强奸乱伦大香蕉网| 久久产精品一区二区三区电影| 亚洲天堂日本| 高清不卡一二三区视频......| 黄色激情电影在线观看| 少妇久久久久久| 九九热精品| 人妻天天爽夜夜爽2| 日本操BAV| www国产天美久久久| 亚洲精品国产专区在线观看| 女性91网站| 男人天堂东京热| 精品视频久久| 麻豆亚洲AV成人无码久久精品| 97av,com| 欧美色吧综合| 日本高清一本二本免费不卡| 99国产精品自在自在| 欧美A√综合网| 欧美日韩亚洲高清不卡一区二区三区| 91久精品| 中文字幕免费观看| AV 少妇 人妻 偷拍| 久久精品欧美一区蜜桃| 午夜免费视频1000| 91色碰| 嗯嗯啊啊好疼| 少好三P| 一区AV| 园内精品自拍视频在线播放|