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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

QT 中的 Graphics View 系统

發布時間:2023/12/18 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT 中的 Graphics View 系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個框架是一個相對成熟的渲染引擎的上層框架,通常也可以會叫做 Scene - View。

在QT中,GraphicsView是一個與QWdiget系列一點點不一樣的系統。這個系統主要由下面幾個框架類構成:QGraphicsView,? QGraphicsScene, QGraphicsItem

?

QGrahpicsView是從原生的QWidget繼承過來,QGraphics-View系統中,他承擔的也是視口的指責,Viewport,Viewport相當于顯示設備的一個矩形區域。

QGraphicsScene 是一個管理器,用來管理所有的QGraphicsItem,包括根據坐標查詢Item,排序Item,繪制Item等。

QGraphicsItem 是所有可見的元件。一個完整的UI界面,由各種QGraphicsItem組合起來。這些QGraphicsItem之間由一棵多叉樹組織。

要架構一個基于GraphicsView的UI庫,需要做如下的三件事情:

  • 我們需要先由一個 QGraphicsView, 這個是UI顯示的地方,也就是裝滿可見原色的Scene,
  • 然后需要一個QGraphicsScene 用來管理所有可見的界面元素,
  • 要實現UI功能,我們需要用各種從QGraphicsItem拼裝成UI控件,并賦予他控件的邏輯。

對應到Duifw,我們的DuiFrameWindow 就是從 QGraphicsView 繼承過來的,也就是說它是一個獨立的視口,相當于操作系統的一個窗口.

在DuiFrameWindow 中 void DuiFrameWindow::_initScene(), 函數中,我們為每一個 DuiFrameWindow 創建了一個標準的 QGraphicsScene,? 并且在 scene 上我們 add 了一個 DuiRootItem,然后我們就在 rootitem上構建我們的所有UI控件,? 從? DuiRootItem: m_rootItem 上 我們add 三個子Item ,分別是 DuiBackgroundItem:m_backgroundItem, DuiTitlebar:m_titlebar, DuiSpacerItem:m_contentItem, 然后我們定義了一個rootWidget() 函數 用來返回? DuiSpacerItem:m_contentItem, 后面通過xml文件配置的一個窗口,就通過訪問rootWidget(), 把所有DuiFrameWindow的孩子節點都以 這個rootWidget為 父節點,如下代碼:

createChild(child->child(index), frame->rootWidget());

這樣就構建了一個QGraphicsItem的多叉樹。前面有一個細節,沒有列出,就是我們的DuiWidget, 是一個什么, 我們的DuiWidget是從QGraphicsWidget,繼承而來的,也就是說它本身是一個符合 QGraphicsScene - QGraphicsItem體系的可視元件。

了解了的GraphicsView的構成框架后,對于QGraphicsItem的消息來源,以及這個框架中的消息走向能夠大概有了猜測了。

QGraphicsView 會把? 原來的QWidget中的各種QHoverEvent, QInputEvent,......等等一些列命令,轉換成各種 QGraphicsSceneEvent ,QGraphicsSceneMouseEvent,QGraphicsSceneWheelEvent......,,,然后傳遞給當前View綁定的QGraphicsScene。然后通過Scene傳遞給 QGraphicsitem,QGraphicsScene 有如下的一堆消息處理接口:

通過上述的分發,最后消息會通過下面的接口傳遞到具體的item,所有的scene消息都是走接口:

這樣就完成了從windows消息到 QGraphicsItem 的消息處理的流程。

到此。QGraphics - View 框架就簡述完成了。

?

//***************************************************
Qt圖形簡單繪制? -貪吃蛇小游戲

在初步了解Qt繪圖相關的基礎知識后,我們將開始學習用Qt做一個貪吃蛇小游戲。

不過在開始游戲之前,我們首先要了解Qt中的一個重要框架,叫Graphics View。

Graphics View是一個很常用的框架(貪吃蛇,俄羅斯方塊等用Graphics View都是最好的方法...),甚至Linux的KDE桌面視圖都是用它編寫的。

Graphics View 分為三個部分:元素(item),場景(scene)以及視圖(view)。

我們舉一個很簡單的例子:我們看到森林里有很多樹,那么這個森林就是場景(scene),樹是元素(item),你的眼睛就是視圖(view)。我們可以在場景里種樹,也就是把item通過add的方法置于場景,遮陽,在我們的視圖(view)里面就會出現一棵樹了。而實際上,我們也未必會一直站在同一個地方看樹;當我們移動的時候,整個森林(scene)的場景在我們的視圖(view)里邊變化。而這在程序中對應著二維圖的旋轉,縮放等功能。

我們來看下面一這個代碼:

?

?
  • int main(int argc, char *argv[])

  • {

  • QApplication a(argc, argv);

  • MainWindow w;

  • w.show();

  • ?
  • QGraphicsScene scene;

  • scene.addRect(0,0,150,150);

  • scene.setBackgroundBrush(QBrush(Qt::gray));

  • ?
  • QGraphicsView view(&scene);

  • view.rotate(30);

  • view.setWindowTitle("Graphics View");

  • view.resize(200, 200);

  • view.show();

  • return a.exec();

  • }

  • 在這里,我們構建了一個場景(scene)和一個視圖(view),同時,我們在視圖上做了旋轉,那么它輸出的結果就是一個旋轉的正方形,如下圖:

    ?

    這種方式在OpenGL以及其他三維軟件API中也很常用,想想大家完第一視角的游戲(比如‘我的世界’),無非就是建立一個場景(世界),修改場景中的元素(比如蓋房子),然后移動視角,遮陽在場景中就能呈現我們的世界。

    大家也可以通過以上代碼,簡單做幾個小程序,或者采用簡單的形狀,通過代碼畫一幅簡單的畫。

    ?

    GraphicsView編程

    一、QGraphicsScene

    1、QGraphicsScene

    QGraphicsScene繼承自QObject,是一個管理圖元的容器,與QGraphicsView合用可以在2D屏幕上顯示如線、三角形、文本、自定義圖元等圖元。

    QGraphicsScene是不可見的,只用于管理圖元。為了查看場景,需要創建一個視圖組件。

    一個場景分為三個層:圖元層、前景層和背景層。場景的繪制總是從背景層開始,然后是圖形項層,最后是前景層。

    2、事件處理與傳播

    ????QGraphicsScene的責任之一是傳播來自視圖的事件。要發送一個事件到場景,需要構造一個繼承自QEvent的事件,使用QApplication::sendEvent()函數發送事件。event()函數負責派發事件到各個圖元。常用的事件會被便利事件處理函數處理,如鼠標按下事件會被mousePressEvent()函數處理。

    ????按鍵事件會被派發到焦點圖元。為了設置焦點圖元,可以調用setFocusItem()函數,或是圖元自身調用QGraphicsItem::setFocus()函數。調用focusItem()函數可以獲取當前的焦點圖元。為了兼容圖形組件,場景維護著自己的焦點信息。默認場景并沒有焦點,并且所有的按鍵事件會別丟棄。如果setFocus()函數被調用,或是場景中一個圖元獲得了焦點,場景會自動獲得焦點。如果場景有焦點,hasFocus()函數會返回true,按鍵事件會被發送到焦點圖元。如果場景失去了焦點,而圖元有焦點(如調用clearFocus()函數),場景會維護圖元的焦點信息,一旦場景重新獲得焦點,會確保最后一個有焦點的圖元獲得焦點。

    ????對于懸停效果,QGraphicsScene會派發懸停事件,如果某個圖元接受了懸停事件(調用QGraphicsItem::acceptHoverEvents()),當鼠標進入圖元的區域時,圖元會接收到一個GraphicsSceneHoverEnter事件。當鼠標繼續在圖元內部移動時,QGraphicsScene會發送GraphicsSceneHoverMove事件。當鼠標離開圖元的區域時,圖元會收到一個GraphicsSceneHoverLeave事件。

    ????所有鼠標事件會被傳播到當前鼠標獲取的圖元。如果一個圖元接收了鼠標事件,并收到鼠標按下,圖元就是場景的鼠標獲取圖元。這個圖元會一直被鼠標獲取,直到圖元收到一個鼠標釋放事件。調用mouseGrabberItem()函數可以知道當前鼠標獲取的圖元。

    場景可以傳遞來自視圖的事件,將事件傳遞給該點最頂層的圖元。如果一個圖元要接收鍵盤事件,那么它必須獲得焦點。而且,如果在場景中重寫了事件處理函數,那么在該函數的最后必須調用場景默認的事件處理函數,只有這樣,圖元才能接收到該事件。

    A、拖拽事件

    [virtual protected] void dragEnterEvent(QGraphicsSceneDragDropEvent *event)//拖入事件處理函數[virtual protected] void dragLeaveEvent(QGraphicsSceneDragDropEvent *event)//拖離事件梳理函數[virtual protected] void dragMoveEvent(QGraphicsSceneDragDropEvent *event)//拖動事件處理函數[virtual protected] void dropEvent(QGraphicsSceneDragDropEvent *event)//Drop事件處理函數//在以上拖拽事件處理函數中的末尾需要調用QGraphicsScene類相應的事件處理函數。QGraphicsScene::dragEnterEvent(event);QGraphicsScene::dragLeaveEvent(event);QGraphicsScene::dragMoveEvent(event);QGraphicsScene::dropEvent(event);

    ?

    B、鼠標事件

    [virtual protected] void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)//鼠標移動處理函數[virtual protected] void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)//鼠標按下處理函數[virtual protected] void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)//鼠標釋放處理函數//在以上鼠標事件處理函數中的末尾需要調用QGraphicsScene類相應的事件處理函數。QGraphicsScene::mouseMoveEvent(event);QGraphicsScene::mousePressEvent(event);QGraphicsScene::mouseReleaseEvent(event);

    ?

    3、索引算法

    ????索引算法,是指在場景中進行圖元查找的算法。QGraphicsScene中提供了兩種選擇,在一個枚舉變量QGraphicsScene::ItemIndexMethod中定義,分別是:

    ????QGraphicsSecne::BspTreeIndex?:應用Binary Space Partition tree,適合于大量的靜態圖元,是默認值。

    ????QGraphicsScene::NoIndex?:不用索引,搜索場景中所有的圖元,適合于經常進行圖元的添加、移動和刪除等操作的情況。

    ????使用setItemIndexMethod()函數進行索引算法的更改。

    4、邊界矩形

    ????圖元可以放到場景的任何位置,場景的大小默認是沒有限制的。而場景的邊界矩形僅用于場景內部進行索引的維護。因為如果沒有邊界矩形,場景就要搜索所有的圖元,然后確定出其邊界,這是十分費時的。所以如果要操作一個較大的場景,應該給出它的邊界矩形。

    ????設置邊界矩形,可以使用setSceneRect()函數。

    5、圖元的查找

    ????場景最大的優勢之一就是可以快速的鎖定圖元的位置,即使有上百萬個圖元,items()函數也能在數毫秒的時間內鎖定一個圖元的位置。items()函數有幾個重載函數來方便的進行圖元的查找。如果在場景的一個點可能重疊著幾個圖元,可以使用itemAt()函數返回最上面的一個圖元。

    二、QGraphicsItem

    1、自定義QGraphicsItem

    ????QGraphicsItem是圖元的基類。

    ????自定義圖元,首先應該繼承QGraphicsItem,然后重寫他的兩個純虛公共函數boundingRect()和paint(),boundingRect()函數返回繪制圖元大概的區域,paint()函數用來繪制圖元內容。

    ????boundingRect()函數有很多用處,場景在boundingRect()來建立它的圖元的index,視圖使用boundingRect來剪切可見的圖元,在重新繪制圖元時候,來決定相互重疊的部分,此外,圖元的碰撞檢測機制也使用的boundingRect()來提供一個高效的定點,在collidesWithItem()更好的碰撞算法建立在調用函數shape(),shape()函數以QpainterPath類型返回圖元的精準的輪廓。

    ????場景不希望圖元的boundingRect()和shape()變化,除非該圖元被通告,如果想通過一些方法改變圖元的形狀,首先應該調用QgraphicsScene()來允許場景QgraphicsScene來刷新它的圖元記錄。

    ????圖元沒有獲得焦點時,事件只能從視圖傳遞到場景,不能傳遞到圖元。清除圖元的焦點函數為clearFocus()。

    2、繪制

    ????paint()函數被QgrapicsView類調用來繪制圖元的內容,圖元默認是沒有背景或者填充顏色的。在函數中沒有被繪制的所有區域都將會發亮,可以調用update()來重繪圖元,可以選擇傳遞需要重繪的矩形區域(不是必須的)。取決于圖元在視圖中是否可見,圖元可能會也可能不會重繪,QgraphicsItem里面沒有和 Qwidget::repaint()函數等價的圖元通過視圖來繪制,從父類圖元開始,然后是圖元自身,以上升的棧的順序,可以通過調用setZValue()設置圖元的棧順序,通過zValue()來測試,具有低z-values的圖元比具有高z-value 的圖元先繪制,棧順序應用于兄弟圖元,父類圖元總是比子類圖元更早繪制。

    3、排序

    ????所有的圖元都按照一個已經聲明的穩定的順序來繪制,聲明的順序決定了當在場景中點擊鼠標時候,哪個圖元最先接受鼠標的輸入。通常情況下,不需要擔心圖元排序的問題,因為所有的圖元都按照一個在場景中聲明的自然的順序。
    ????在一個棧中,子類圖元在父類圖元的上面,兄弟圖元按照插入場景的順序來入棧,如果你先添加圖元A ,然后是圖元B,然后是圖元C ,棧中的順序從下往上就是A、B、C。可以調用setZvalue()來設置一個圖元的相對于另一個圖元向上、向下或者兄弟棧順序。默認的Z值是0,具有同樣的Z值的圖元會按照插入的順序來入棧。可以調用stackBefore()來備份子類圖元的列表,直接更正圖元的順序。
    ????如果想讓子類圖元在父類圖元的后面,也就是先繪制子類圖元,然后再繪制父類圖元。可以利用函數setFlag()設置ItemStacksBehindParent屬性給圖元。

    4、事件處理

    ????QgraphicsItem從場景中通過sceneEvent()函數來接受事件,sceneEvent()函數通過一些方便的操作分散大部分事件。

    ? ? ContextMenuEvent()函數接受上下文菜單事件,?FocusInEvent()和focusOutEvent()函數接受焦點進出事件,?hoverEnterEvent()、hoverMoveEvent()、hoverLeaveEvent() 接受鼠標懸浮移動和離開事件。?

    ? ? inputMethodEvent()函數處理輸入法事件,keyPressEvent()和keyReleaseEvent()事件處理鍵盤按下和釋放事件。

    ? ? mousePressEvent()、mouseMoveEvent()、mouseReleaseEvent()、? ?mouseDoubleClickEvent()處理鼠標按下、移動、釋放、雙擊事件。

    ????通過安裝過濾器,可以為圖元過濾一些事件,與QT一般的事件過濾器不一樣,一般的過濾器只工作在Qobject及其子類。通過調用?installSceneEventFilter()為圖元安裝事件過濾器后,被過濾的事件將會被虛函數sceneEventFilter()捕捉?到,可以通過調用函數removeSceneEventFilter()來去除掉事件過濾器。

    A、拖拽事件

    ????GraphicsView框架為視圖、場景、圖元提供拖拽支持。當視圖接收到拖拽事件,GraphicsView框架會將拖拽事件翻譯為QGraphicsSceneDragDropEvent事件,再發送到場景,場景接管事件,把事件發送到光標下接受拖拽的第一個圖元。

    ????從圖元開始拖拽時,創建一個QDrag對象,傳遞開始拖拽的QWidget的指針。圖元可以同時被多個視圖觀察,但只有一個視圖可以開始拖拽。拖拽在多數情況下是從按下鼠標或是移動鼠標開始的,在mousePressEvent()或mouseMoveEvent()中,可以從事件中得到原始的QWidget指針。

    ????要在場景中取拖拽事件,需要重新實現QGraphicsScene::dragEnterEvent()和QGraphicsItem子類里任何與特定場景需要的事件處理器。圖元也可以通過調用QGraphicsItem::setAcceptDrops()獲得拖拽支持,為了處理將要進行的拖拽,需要重新實現QGraphicsItem的dragEnterEvent()、dragMoveEvent()、dropEvent()、dragLeaveEvent() 。

    [virtual protected] void dragEnterEvent(QGraphicsSceneDragDropEvent *event)[virtual protected] void dragLeaveEvent(QGraphicsSceneDragDropEvent *event)[virtual protected] void dragMoveEvent(QGraphicsSceneDragDropEvent *event)[virtual protected] void dropEvent(QGraphicsSceneDragDropEvent *event)

    B、鼠標事件

    ????要在自定義圖元類中處理鼠標事件,需要重寫QGraphicsItem類中鼠標按下、鼠標移動、鼠標釋放的事件。

    [virtual protected] void mouseMoveEvent(QGraphicsSceneMouseEvent *event)[virtual protected] void mousePressEvent(QGraphicsSceneMouseEvent *event)[virtual protected] void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)

    ?

    5、動畫效果

    ????實現圖元的動畫效果,也可以在不同的層面進行。如果只想控制一兩個圖元的動畫,一般在場景或視圖中實現。但是要是想讓一個圖元類的多個對象都進行同樣的動畫,那么我們就可以在圖元類的構造函數中進行實現。

    //圖元可獲得焦點setFlag(QGraphicsItem::ItemIsFocusable);//圖元可移動setFlag(QGraphicsItem::ItemIsMovable);QGraphicsItemAnimation *anim = new QGraphicsItemAnimation;//將圖元加入動畫對象中anim->setItem(this);//創建長為1秒的時間線QTimeLine *timeLine = new QTimeLine(1000);//動畫循環次數為0,表示無限循環timeLine->setLoopCount(0);//將時間線加入動畫類對象中anim->setTimeLine(timeLine);//在動畫時間的一半時圖形項旋轉180度anim->setRotationAt(0.5,180);//在動畫執行完時圖形項旋轉360度anim->setRotationAt(1,360);//開始動畫timeLine->start();

    ?

    6、移動

    ????圖元的移動,有多種方法實現,可以在視圖或場景上控制,但對于不同類型的大量圖元,怎樣能一起控制呢?在圖形視圖框架中提供了advance()槽函數,advance()函數在QGraphicsScene和QGraphicsItem中都有定義,在圖元類中的原型是advance(int phase)。實現流程是,利用QGraphicsScene類的對象調用QGraphicsScene的advance()函數,會執行兩次場景中所有圖元的advance(int phase)函數,第一次phase為0,告訴所有圖形項即將要移動;第二次phase的值為1,執行移動。

    ????QTimer timer;

    ????QObject::connect(&timer, SIGNAL(timeout()),scene, SLOT(advance()));

    ????timer.start(1000);

    ????至于圖元如何移動,需要重寫圖元類的advance()函數。

    ????如果在自定義圖元類的構造函數中設置為可移動,則圖元可以直接使用鼠標拖拽。

    setFlag(QGraphicsItem::ItemIsMovable);

    7、圖元的坐標轉換

    ????QgraphicsItem支持坐標轉換,對于簡單的轉換,可以調用函數setRotation()或者setScale(),可以傳遞一個轉換矩陣給函數setTransform(),對于一些更復雜的轉換,可以通過調用函數setTransformations()來設置一系列組合的轉換。
    ????圖元轉換從父類到子類進行聚集,因此如果一個父類圖元和子類圖元都旋轉90度,那么子類圖元就旋轉了180度;如果父類圖元和子類圖元都放大了2X倍,那么子類圖元就被放大4X倍,圖元的轉換不影響圖元的外觀,所有和外觀有關的函數(例如contains(),update()和所有的映射mapping函數)將會在本地坐標中操作,QgraphicsItem提供函數sceneTransform(),將會返回圖元所有的轉換矩陣,scenePos()將會返回圖元在場景坐標中的位置,重新設置圖元的矩陣,調用函數resetTransform()。
    ????一般的轉換回產生一個不同的結果,取決于轉換應用的順序,轉換順序不同得到結果將不同。

    8、主要成員函數

    ? ? QVariant itemChange(GraphicsItemChange change, const QVariant & value)

    ????itemChange函數被QGraphicsItem調用用來標識圖元的狀態改變了,通過重載itemChange函數,可以對自己定義事件響應。參數change是改變的圖元的改變狀態參數,value是一個新的數據,類型取決于change,change是QGraphicsItem::GraphicsItemChange枚舉變量。

    ????在itemChange函數內部調用函數時候要謹慎,不能在itemChange函數里面調用setPos(),參數change是ItemPositionChange時,setPos()函數將會再次調用itemChange(ItemPositionChange),形成死循環。

    ????void setFlag(GraphicsItemFlag flag, bool enabled = true)
    ?
    ???? void setFlags(GraphicsItemFlags flags)
    ?
    ????flags設置為圖元的屬性,如果圖元獲得了光標,但flags沒有使能ItemsFocusable,圖元將會丟失光標,當圖元被選擇,但沒有使能ItemsSelectable,圖元會自動的失去選擇。
    ?????QPainterPath shape () const?

    ????以QPainterPath返回圖元在本地坐標中的形狀,形狀可以用來做很多事情,包括碰撞偵測,打擊測試,還有用來?QGraphicsScene::items() 函數
    ????默認的函數調用boundingRect()返回一個簡單的矩形形狀,子類可以重載boundingRect函數,為非矩形的圖元返回一個更加精準的形狀,例如一個圓形的圖元可以選擇返回一個橢圓形,用來獲得更好的碰撞偵測效果。

    三、QGraphicsView

    1、QGraphicsView簡介

    ????QGraphicsView繼承自QAbstractScrollArea,繼承了QWidget的特性。

    ????QGraphicsView提供了視圖窗口部件,使場景的內容可視化。可以給一個場景關聯多個視圖,從而給一個數據集提供多個視口。視圖部件是一個滾動區域,可以提供一個滾動條來顯示大型的場景。

    2、事件處理

    ????在圖形視圖框架中,鼠標鍵盤等事件是從視圖進入的,視圖將事件傳遞給場景,場景再將事件傳遞給該點的圖元,如果該點有多個圖元,那么就傳給最上面的圖元。為了使事件能進一步傳播到場景,需要在重新實現事件處理函數時,在其最后將event參數傳給默認的事件處理函數。比如重寫了視圖的鼠標按下事件處理函數,那么就在該函數的最后寫上QGraphicsView::mousePressEvent(event);

    A、拖拽事件

    ????在QGraphicView中提供了三種拖拽模式,分別是:

    QGraphicsView::NoDrag //忽略鼠標事件,不可以拖動。QGraphicsView::ScrollHandDrag //光標變為手型,可以拖動場景進行移動。QGraphicsView::RubberBandDrag // 使用橡皮筋效果,進行區域選擇,可以選中一個區域內的所有圖元。

    ?

    ????可以利用setDragMode()函數進行相應設置。

    [virtual protected] void dragEnterEvent(QDragEnterEvent *event)[virtual protected] void dragLeaveEvent(QDragLeaveEvent *event)[virtual protected] void dragMoveEvent(QDragMoveEvent *event)[virtual protected] void dropEvent(QDropEvent *event)//在以上拖拽事件處理函數中的末尾需要調用QGraphicsView類相應的事件處理函數。QGraphicsView::dragEnterEvent(event);QGraphicsView::dragLeaveEvent(event);QGraphicsView::dragMoveEvent(event);QGraphicsView::dropEvent(event);

    ?

    B、鼠標事件

    [virtual protected] void mouseMoveEvent(QMouseEvent *event)[virtual protected] void mousePressEvent(QMouseEvent *event)[virtual protected] void mouseReleaseEvent(QMouseEvent *event)void setMouseTracking(bool enable)//在以上鼠標事件處理函數中的末尾需要調用QGraphicsView類相應的事件處理函數。QGraphicsView::mouseMoveEvent(event);QGraphicsView::mousePressEvent(event);QGraphicsView::mouseReleaseEvent(event);

    ?

    四、程序實例

    1、自定義視圖

    CustomView.h文件:

    #ifndef CUSTOMVIEW_H #define CUSTOMVIEW_H#include <QGraphicsView>class CustomView : public QGraphicsView {Q_OBJECT public:CustomView(QWidget *parent = 0); protected:void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE;void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE; };#endif // CUSTOMVIEW_H

    CustomView.cpp文件:

    #include "CustomView.h" #include <QDebug>CustomView::CustomView(QWidget *parent):QGraphicsView(parent) { }void CustomView::mousePressEvent(QMouseEvent *event) {qDebug() << "CustomView::mousePressEvent";QGraphicsView::mousePressEvent(event); }void CustomView::mouseMoveEvent(QMouseEvent *event) {qDebug() << "CustomView::mouseMoveEvent";QGraphicsView::mouseMoveEvent(event); }void CustomView::mouseReleaseEvent(QMouseEvent *event) {qDebug() << "CustomView::mouseReleaseEvent";QGraphicsView::mouseReleaseEvent(event); }void CustomView::paintEvent(QPaintEvent *event) {qDebug() << "CustomView::paintEvent";QGraphicsView::paintEvent(event); }void CustomView::dragEnterEvent(QDragEnterEvent *event) {qDebug() << "CustomView::dragEnterEvent";QGraphicsView::dragEnterEvent(event); }void CustomView::dragLeaveEvent(QDragLeaveEvent *event) {qDebug() << "CustomView::dragLeaveEvent";QGraphicsView::dragLeaveEvent(event); }void CustomView::dragMoveEvent(QDragMoveEvent *event) {setCursor(Qt::CrossCursor);qDebug() << "CustomView::dragMoveEvent";QGraphicsView::dragMoveEvent(event); }void CustomView::dropEvent(QDropEvent *event) {qDebug() << "CustomView::dropEvent";QGraphicsView::dropEvent(event); }

    2、自定義場景

    CustomScene.h文件:

    #ifndef CUSTOMSCENE_H #define CUSTOMSCENE_H#include <QGraphicsScene> #include <QGraphicsSceneMouseEvent> #include <QPaintEvent>class CustomScene : public QGraphicsScene {Q_OBJECT public:CustomScene(QObject *parent = 0); protected:void mousePressEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;void mouseMoveEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;void dragEnterEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dragMoveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dropEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE; };#endif // CUSTOMSCENE_H

    CustomScene.cpp文件:

    #include "CustomScene.h" #include <QDebug>CustomScene::CustomScene(QObject *parent):QGraphicsScene(parent) { }void CustomScene::mousePressEvent(QGraphicsSceneMouseEvent *event) {qDebug() << "CustomScene::mousePressEvent";QGraphicsScene::mousePressEvent(event); }void CustomScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {qDebug() << "CustomScene::mouseReleaseEvent";QGraphicsScene::mouseReleaseEvent(event); }void CustomScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {qDebug() << "CustomScene::mouseMoveEvent";QGraphicsScene::mouseMoveEvent(event); }void CustomScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event) {qDebug() << "CustomScene::dragEnterEvent";QGraphicsScene::dragEnterEvent(event); }void CustomScene::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) {qDebug() << "CustomScene::dragLeaveEvent";QGraphicsScene::dragLeaveEvent(event); }void CustomScene::dragMoveEvent(QGraphicsSceneDragDropEvent *event) {qDebug() << "CustomScene::dragMoveEvent";QGraphicsScene::dragMoveEvent(event); }void CustomScene::dropEvent(QGraphicsSceneDragDropEvent *event) {qDebug() << "CustomScene::dropEvent";QGraphicsScene::dropEvent(event); }

    3、自定義圖元

    CustomItem.h文件:

    #ifndef CUSTOMITEM_H #define CUSTOMITEM_H#include <QGraphicsItem> #include <QGraphicsSceneMouseEvent>class CustomItem : public QGraphicsItem { public:CustomItem();void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) Q_DECL_OVERRIDE;QRectF boundingRect() const Q_DECL_OVERRIDE; protected://鼠標事件void mousePressEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;void mouseMoveEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;//拖拽事件void dragEnterEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dragMoveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;void dropEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE; private:QColor color; };#endif // CUSTOMITEM_H

    CustomItem.cpp文件:

    #include "CustomItem.h" #include <QDebug> #include <QPainter> #include <QCursor> #include <QPen>CustomItem::CustomItem() {color = Qt::red;setFlag(QGraphicsItem::ItemIsFocusable);//設置圖元為可移動的setFlag(QGraphicsItem::ItemIsMovable);setAcceptDrops(true); }void CustomItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {Q_UNUSED(option);Q_UNUSED(widget);qDebug() << "CustomItem::paint";if(hasFocus()) {painter->setPen(QPen(QColor(255,255,255,200)));} else {painter->setPen(QPen(QColor(100,100,100,100)));}painter->setBrush(color);painter->drawRect(-10, -10, 20, 20); }QRectF CustomItem::boundingRect() const {qreal adjust = 0.5;return QRectF(-10 - adjust, -10 - adjust, 20 + adjust, 20 + adjust); }void CustomItem::mousePressEvent(QGraphicsSceneMouseEvent *event) {Q_UNUSED(event);qDebug() << "CustomItem::mousePressEvent";setCursor(Qt::OpenHandCursor); }void CustomItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {setCursor(Qt::DragMoveCursor);qDebug() << "CustomItem::mouseMoveEvent"; }void CustomItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {qDebug() << "CustomItem::mouseReleaseEvent";setCursor(Qt::ArrowCursor); }void CustomItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event) {setCursor(Qt::CrossCursor);qDebug() << "CustomItem::dragEnterEvent"; }void CustomItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) {setCursor(Qt::ForbiddenCursor);qDebug() << "CustomItem::dragLeaveEvent"; }void CustomItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event) {setCursor(Qt::CrossCursor);qDebug() << "CustomItem::dragMoveEvent"; }void CustomItem::dropEvent(QGraphicsSceneDragDropEvent *event) {setCursor(Qt::WaitCursor);qDebug() << "CustomItem::dropEvent"; }

    4、程序使用

    #include "CustomScene.h" #include "CustomView.h" #include "CustomItem.h" #include <QApplication> #include <QTime>int main(int argc, char *argv[]) {QApplication a(argc, argv);qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));CustomScene scene;scene.setSceneRect(-200, -150, 400, 300);for(int i = 0; i < 5; ++i) {CustomItem *item = new CustomItem;item->setPos(i * 50 - 90, -50);scene.addItem(item);}CustomView view;view.setScene(&scene);view.show();return a.exec(); }

    ?

    總結

    以上是生活随笔為你收集整理的QT 中的 Graphics View 系统的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    在线日韩av | 91精品国自产拍天天拍 | 亚洲精品视频免费观看 | 91麻豆网| 亚洲激情在线播放 | 久久国产精品免费一区二区三区 | 国产色视频网站2 | 国产精品成人品 | 一区二区三区四区精品视频 | 香蕉视频国产在线观看 | 天天干亚洲 | 在线小视频你懂的 | 国产麻豆电影在线观看 | 97在线播放视频 | 2020天天干天天操 | 国产精品久久中文字幕 | 午夜免费在线观看 | 婷婷六月网 | 99精品欧美一区二区蜜桃免费 | 久久久久久久久久久免费视频 | 久久久人人人 | 亚洲有 在线 | 久久国内精品99久久6app | 成年人免费在线观看 | 国产在线91在线电影 | 麻豆av一区二区三区在线观看 | 麻豆视频国产在线观看 | 色停停五月天 | 日韩欧美一区二区三区视频 | 中日韩在线视频 | 亚洲精品免费观看视频 | 午夜精品导航 | 国产精品久久久久aaaa | 全黄网站 | 日日夜夜天天人人 | 9免费视频| 欧美吞精 | 亚洲国产高清在线观看视频 | 日韩欧美高清不卡 | 九九热re| 精品亚洲视频在线观看 | 日韩国产高清在线 | 久久久久久久久久电影 | 久香蕉 | aa一级片 | 少妇做爰k8经典 | 国产香蕉久久 | 国产成人一区二区三区影院在线 | 国产一级大片免费看 | 黄色大全免费观看 | 久久歪歪| 人成在线免费视频 | 欧美日在线 | 欧美精品久久人人躁人人爽 | 久久久五月天 | 午夜美女福利直播 | 夜夜操网站 | 高潮久久久久久久久 | 亚洲精选国产 | 久久免费久久 | 亚洲精品在线资源 | 日韩精品一区二区三区电影 | 欧美福利网址 | 在线观看成人福利 | 久久久久黄色 | 国产黑丝一区二区三区 | 亚洲精品在线播放视频 | 日韩av中文字幕在线 | 人人超在线公开视频 | 午夜神马福利 | 操久| 又爽又黄又无遮挡网站动态图 | 五月天综合色激情 | 激情综合一区 | 久久99久久精品国产 | 综合色中文| 久久精品视频在线看 | 日韩精品久久久免费观看夜色 | 日韩精选在线观看 | 亚洲精品国产成人av在线 | 国产理论在线 | 免费看色的网站 | 亚洲欧洲成人 | 国产精品 中文在线 | 国产真实精品久久二三区 | 成人黄色资源 | 中文亚洲欧美日韩 | 91看片淫黄大片在线播放 | av电影免费在线看 | 人人澡人摸人人添学生av | 亚洲黄色片在线 | 亚洲成人第一区 | 精品国产午夜 | 欧美最新另类人妖 | 国产精品尤物视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲精品午夜久久久 | 亚洲涩涩网 | 亚洲mv大片欧洲mv大片免费 | 亚洲国产中文字幕在线视频综合 | 97超碰国产精品 | 超碰97人人射妻 | 久久午夜精品影院一区 | 久久有精品 | 99视频在线免费观看 | 欧美激情视频久久 | 91免费网| 99精品国产一区二区三区不卡 | 久久精品精品电影网 | 国产中文字幕大全 | 成人h在线观看 | av网站在线观看播放 | 久久一本综合 | 午夜av在线免费 | 久久五月网 | 国内精品一区二区 | 久久久国产网站 | 国产精品24小时在线观看 | 麻豆一区二区 | 久草在线在线视频 | 欧美大片mv免费 | 欧美91成人网 | 日韩电影在线观看一区二区 | 国产高清视频在线播放一区 | 狠狠操狠狠干天天操 | 91免费网址 | 成年人黄色大片在线 | 精品自拍sae8—视频 | 天天爽天天做 | 欧美日韩一区二区在线 | 99久久精品国产毛片 | 狠狠综合久久av | 又黄又爽又无遮挡免费的网站 | 一区 二区 精品 | 日韩高清不卡在线 | 亚洲精品视频在线观看视频 | 亚洲成人午夜av | 日韩免费中文 | 国产精品毛片久久久久久久久久99999999 | 中文字幕在线视频一区 | 免费视频一二三区 | 97视频免费在线 | 亚洲一区免费在线 | 国产日韩中文字幕 | 亚洲狠狠婷婷 | 91在线区 | 日日爽天天 | 日韩有码网站 | 五月婷婷色 | 香蕉成人在线视频 | 欧美性网站 | 国产精品国产三级国产aⅴ无密码 | 亚洲人成人99网站 | 91成人破解版 | 国产精品综合久久久久久 | 免费a v观看| 国产成人精品av | 国产一区二区精品 | 九九久久久久久久久激情 | 黄色片网站av | 中文字幕人成乱码在线观看 | 久久精品美女视频网站 | 色婷婷综合五月 | 美女网站视频免费都是黄 | 超碰伊人网 | 成人欧美一区二区三区黑人麻豆 | 久热精品国产 | a色视频 | 操久在线 | 成人免费色 | 色综合色综合久久综合频道88 | 九九视频免费观看视频精品 | 91高清免费观看 | 精品一区电影国产 | 伊甸园永久入口www 99热 精品在线 | 国产精品免费视频一区二区 | 草久在线观看 | 91视频在线观看下载 | 天天操天天射天天操 | 日本最新高清不卡中文字幕 | 欧美日韩高清一区二区 国产亚洲免费看 | 日韩av一区二区在线播放 | 中文字幕av在线 | 久久tv视频 | 中文字幕精品www乱入免费视频 | 97视频人人免费看 | 久久中文精品视频 | 男女视频91 | 成人av一二三区 | 99精品视频免费看 | 久草免费在线视频观看 | 五月天中文字幕 | 日韩av中文在线 | 亚洲国内精品视频 | 日日夜夜国产 | 97操操| 色在线高清 | 国产精品久久久久亚洲影视 | 日韩电影在线视频 | 日本中文字幕免费观看 | 成人午夜剧场在线观看 | 91九色在线视频 | 欧美精品乱码久久久久久 | 亚洲成人av片 | 午夜在线资源 | 在线看成人 | 日韩在线观看视频一区二区三区 | av千婊在线免费观看 | 91看成人| 国产精品国产三级国产 | 日韩视频免费 | 天天爱天天| 国产精品免费人成网站 | 人人爽人人爽人人片 | 国产精品免费看久久久8精臀av | 九九影视理伦片 | 区一区二区三区中文字幕 | 亚洲少妇天堂 | 黄网站污 | 久久久久久国产精品免费 | 日韩精品久久久久 | 国产激情小视频在线观看 | 天天操天天射天天插 | 日韩 在线a | www色网站| 精品国产免费av | 国产精品欧美久久 | 丝袜美腿在线播放 | 欧洲亚洲精品 | 色精品视频 | 中文字幕在线观看网 | 手机在线小视频 | 操天天操| 久草在线观看 | 在线观看岛国片 | 久久成人亚洲欧美电影 | 色综久久| 国产精品久久久久久电影 | 久草在线高清视频 | 中文字幕第一页在线播放 | 久久久黄视频 | 美女视频黄是免费的 | 国产一区二区在线免费播放 | 婷婷网五月天 | 亚洲成免费 | 久久亚洲综合色 | 91视频免费播放 | 婷婷射五月 | 久久久电影 | 日本久久中文字幕 | 色综合天天色 | 欧美激情视频在线观看免费 | 国产亚洲精品女人久久久久久 | 久久午夜电影 | 97热在线观看 | 欧美精品乱码久久久久久 | 一区二区 不卡 | 精品国产aⅴ麻豆 | 人人澡视频 | 在线中文字幕av观看 | wwwwww国产 | 久久精品免费播放 | 青青河边草免费直播 | 激情综合国产 | 久久免费成人精品视频 | 久久久久女教师免费一区 | 三级视频国产 | 在线观看黄色免费视频 | 久久精品这里都是精品 | 国产精品美女www爽爽爽视频 | 91色在线观看 | 久久国语| 久久久久久久久久久久国产精品 | 高潮毛片无遮挡高清免费 | 综合五月 | av中文字幕在线电影 | 国产一区二区在线免费 | 亚洲一级片在线观看 | 三级在线视频播放 | 国产69精品久久久久久 | 成人在线黄色 | 国产精品尤物视频 | 国产精品va在线观看入 | 国产黄大片在线观看 | 国产黄a三级三级 | 天天操夜| 日日夜夜精品视频天天综合网 | 波多野结衣一区二区三区中文字幕 | 亚洲精品国产精品久久99 | 五月婷婷在线综合 | 午夜婷婷综合 | 亚洲资源在线观看 | 国产xxxx | 日韩欧美精选 | 一级黄网 | 中文字幕免费观看全部电影 | 国产破处在线播放 | 三级黄色三级 | 五月婷激情 | 91精彩视频| 天天插天天操天天干 | 午夜精品999 | 日日婷婷夜日日天干 | 亚洲精品自拍 | 国产一区二区三区免费观看视频 | 久久久精品午夜 | 免费男女羞羞的视频网站中文字幕 | 深夜国产在线 | 亚洲成人黄色在线观看 | 久久99热精品 | 日韩在线网 | 久久人人97超碰国产公开结果 | 国产视频久 | 日韩av播放在线 | 在线不卡视频 | 超碰人人乐| 五月婷婷综合网 | 92中文资源在线 | 久久人91精品久久久久久不卡 | 日本一区二区不卡高清 | 国产在线更新 | 五月丁香 | 国产99久久99热这里精品5 | 日日爽天天| 久草影视在线 | 国产成人免费av电影 | 中文字幕视频在线播放 | 中文字幕在线有码 | 久久黄色小说视频 | 人人揉人人揉人人揉人人揉97 | 97精品国产一二三产区 | 国产视频欧美视频 | 国产成人在线免费观看 | 天天狠狠| 国产精品永久免费视频 | 日韩欧美在线免费 | 四虎在线观看 | 国产香蕉久久精品综合网 | 天天操天天干天天 | 国产在线色视频 | 国内揄拍国产精品 | 日韩视频一区二区三区在线播放免费观看 | 97在线看 | 欧美日韩91 | 日日夜夜综合网 | 六月丁香激情网 | 亚洲精品美女视频 | 97av超碰| 菠萝菠萝蜜在线播放 | 亚洲精品乱码久久久久久写真 | 久久综合国产伦精品免费 | 96精品视频| 日韩欧美国产成人 | av在线官网 | 久久黄色小说视频 | 免费观看一级特黄欧美大片 | 欧美色插 | 狠狠的操狠狠的干 | 一区二区三区韩国免费中文网站 | 欧美日韩亚洲在线观看 | 国产高清在线观看av | 成人免费在线看片 | 狠狠色丁香婷婷综合最新地址 | av色综合 | 丁香婷婷激情国产高清秒播 | 91在线观看高清 | av福利电影 | 精品视频在线视频 | 中文字幕精品三级久久久 | 国产色在线视频 | 国产一区免费视频 | 99色资源 | 91视频免费| 久草视频免费在线观看 | 免费在线观看亚洲视频 | 日韩理论片在线观看 | 久久观看免费视频 | 欧美在线aa| 99久久99视频只有精品 | 日韩视频免费看 | 国产69精品久久久久久久久久 | 九色视频网 | 久久免费视频观看 | 伊人伊成久久人综合网站 | 又黄又爽免费视频 | 国产精品久久久久久久久久久久午夜片 | 亚洲婷婷丁香 | av天天在线观看 | 99热这里只有精品久久 | 色射爱| 免费在线观看不卡av | 亚洲欧美日韩国产一区二区三区 | 国产美女免费视频 | 99国产精品一区 | 人人爽人人澡 | 99资源网 | 成人在线播放免费观看 | 超碰97免费在线 | 午夜精品一区二区三区可下载 | 亚洲成av人电影 | 一区二区视频在线播放 | 麻豆影视在线免费观看 | 国内视频在线 | 久久婷婷亚洲 | 亚洲国产精品资源 | av黄色免费在线观看 | av黄在线播放 | www.日日日.com | 99视频在线播放 | 久久草av | 在线视频精品播放 | 国产精品久久久久久久午夜 | 中文字幕 国产视频 | 激情欧美一区二区三区 | 久久99国产综合精品免费 | 一区二区三区在线视频观看58 | 国产麻豆精品久久 | 亚洲热视频 | 国产精品久久久999 国产91九色视频 | 欧美精品一级视频 | 免费黄色av. | 久久情爱| 日韩av片无码一区二区不卡电影 | 国内三级在线观看 | 黄色软件在线观看免费 | 在线免费av网站 | 99久久www免费 | 亚洲三级在线播放 | 日韩1级片 | 亚洲国产精品一区二区尤物区 | 五月天久久婷婷 | 国产午夜精品一区二区三区在线观看 | 中文字幕在线看人 | 视频在线观看入口黄最新永久免费国产 | 91av免费在线观看 | 国产精品国产精品 | 最近中文字幕mv免费高清在线 | 久久综合五月天 | 欧美韩日在线 | 日韩国产欧美在线视频 | 亚洲免费激情 | 久久好看免费视频 | 狠狠gao | 国产一级一级国产 | 欧美午夜理伦三级在线观看 | 亚洲免费观看在线视频 | 91免费版成人 | 五月开心婷婷 | 九九热在线观看 | 久久婷婷五月综合色丁香 | 欧美在线视频一区二区三区 | 人人澡人人干 | 国产91对白在线播 | 伊人久久一区 | 久久在线免费视频 | av在线播放快速免费阴 | 亚洲一区二区视频 | 日韩欧美在线播放 | 激情黄色一级片 | 日韩和的一区二在线 | 国产视频精品网 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产免费午夜 | 久久久精品一区二区三区 | 成年人黄色免费看 | 国产这里只有精品 | 91亚洲精品久久久中文字幕 | 久久天天躁狠狠躁亚洲综合公司 | 99久久99久久精品国产片果冰 | 亚洲乱亚洲乱亚洲 | 亚洲欧美成人综合 | 国产小视频免费在线观看 | 国产一级二级在线播放 | 在线视频 精品 | 久久久久久久久久久久久久电影 | 91亚洲欧美激情 | 日韩精品免费一线在线观看 | 天天亚洲综合 | 亚洲黄色免费观看 | 日韩国产精品一区 | 日批在线看 | 亚洲aaa毛片 | 国产亚洲精品久久网站 | 中文字幕av一区二区三区四区 | 日韩毛片久久久 | 五月的婷婷| 免费91麻豆精品国产自产在线观看 | 亚洲欧美综合精品久久成人 | 精品电影一区 | 成人av在线资源 | 又黄又刺激视频 | 色婷婷激情电影 | 综合网成人| 色综合天天狠狠 | 国产视频一级 | 四虎国产精品成人免费4hu | 亚洲成人黄色在线观看 | 五月激情av| 欧美日韩一级视频 | 亚洲欧美视频在线观看 | 四虎在线免费观看 | 欧美一区二区三区不卡 | 精品国产综合区久久久久久 | 国产无套精品久久久久久 | 欧美色图88| 天天操狠狠操夜夜操 | 特级黄色一级 | 特级黄录像视频 | 精品久久久久久久久亚洲 | a精品视频 | 91在线视频在线观看 | 手机成人av | 免费看片黄色 | 少妇bbw撒尿 | 欧美性性网| 日韩三级视频在线看 | 久久av网址 | 91桃色国产在线播放 | 九九九热精品免费视频观看 | 伊色综合久久之综合久久 | 国产精品免费久久 | 久久不卡日韩美女 | 伊人网站 | 国语久久| 精品一区二区精品 | 91九色porny蝌蚪主页 | 国产精品高清av | 亚洲爱爱视频 | 91大神精品视频在线观看 | 99婷婷狠狠成为人免费视频 | 日韩精品高清不卡 | 国产亚洲精品福利 | 91免费观看网站 | 国产麻豆视频在线观看 | 中文字幕av一区二区三区四区 | 天堂在线一区 | 中文av日韩 | 一区二区三区免费在线观看视频 | 最近高清中文在线字幕在线观看 | 日日操日日干 | 91在线免费播放 | 免费看的黄网站 | 99久热在线精品视频观看 | 99精品偷拍视频一区二区三区 | 97人人添人澡人人爽超碰动图 | 欧美日韩后 | 狠狠操狠狠 | 手机av在线免费观看 | 欧美日韩精品久久久 | 人成午夜视频 | 四虎精品成人免费网站 | 国产精品久久久久婷婷二区次 | 草久视频在线 | 天天操天天干天天插 | 高清av网 | 麻豆传媒在线免费看 | 91精品专区 | 国产精品久久久久久吹潮天美传媒 | 欧美日韩国产成人 | 成人黄色小说网 | av中文在线观看 | 国产精品久久久久av免费 | 久久不色| 97精品国自产拍在线观看 | 五月天综合在线 | 手机在线黄色网址 | 蜜臀aⅴ国产精品久久久国产 | 午夜久久视频 | 久热香蕉视频 | 国产成人精品一区二区三区福利 | 久久久久电影网站 | 又黄又爽又刺激 | 狠狠色狠狠综合久久 | 午夜精品福利一区二区三区蜜桃 | 福利精品在线 | 国产一级大片免费看 | 日韩精品视频免费在线观看 | 久久只有精品 | 国产精品乱码久久久久久1区2区 | 丁香婷婷综合色啪 | 成人永久在线 | 国产二区电影 | 在线探花 | 久草观看视频 | 欧美一级片在线 | 波多野结衣综合网 | 91免费网站在线观看 | 国产一卡久久电影永久 | 91毛片在线观看 | 国产精品99蜜臀久久不卡二区 | 亚洲国产色一区 | 国产69精品久久app免费版 | 日韩电影一区二区三区在线观看 | 色综合五月天 | 欧美精品一区二区三区一线天视频 | 九九九在线 | 成人av片免费看 | 91精品高清| 国产一区二区视频在线播放 | 日本久久综合视频 | 韩国精品在线观看 | 婷婷色av| 国产一级视频在线 | 在线激情av电影 | 人人搞人人干 | 国内精品久久久久久久影视麻豆 | 夜夜爽88888免费视频4848 | 午夜婷婷在线播放 | 久久精品国产一区二区三区 | 九九免费精品视频在线观看 | 九色视频网 | 久久伊人热 | 狠狠躁日日躁狂躁夜夜躁 | 丁香六月婷婷开心婷婷网 | 一区二区三区av在线 | 亚洲永久精品国产 | 久久久久久久电影 | 三级av免费观看 | 亚洲免费成人av电影 | 最新国产在线 | 丁香六月色 | 91亚洲国产成人久久精品网站 | 日韩中文字幕视频在线观看 | 久久亚洲成人网 | 欧美激情视频一二区 | 久草在线中文888 | 欧洲一区二区在线观看 | 一区二区精品 | 亚洲午夜精品在线观看 | 成人午夜电影在线播放 | 91成人短视频在线观看 | 99久久这里有精品 | 欧美少妇的秘密 | 久久国内精品视频 | 亚洲欧美在线观看视频 | 国产999精品久久久久久绿帽 | 午夜精品电影一区二区在线 | 又污又黄网站 | 国产一区二区高清视频 | 欧美黄色成人 | 91九色蝌蚪国产 | 亚洲免费精品一区二区 | 亚洲狠狠丁香婷婷综合久久久 | 色综合久久中文综合久久牛 | a级片网站 | 超碰免费成人 | 亚洲精品乱码久久久久久 | 中文字幕在线电影 | 制服丝袜欧美 | 亚洲永久精品视频 | 中文成人字幕 | 国产九九在线 | 久久久国产精品一区二区三区 | 久久成人精品视频 | 黄色av电影一级片 | 国产免费又黄又爽 | 国产精品人成电影在线观看 | 亚洲五月综合 | 亚洲欧美在线综合 | 一本一本久久aa综合精品 | 操老逼免费视频 | 欧美日韩国语 | 91免费网站在线观看 | 中文字幕高清视频 | 亚洲国产成人av网 | 中文字幕av一区二区三区四区 | 丁香综合av | 狠狠操狠狠干天天操 | 亚洲伊人婷婷 | 丁香婷婷基地 | 亚洲免费在线观看视频 | 久久久精品久久 | 99精品电影 | 日韩免费b| 亚洲成人av在线电影 | 99精品视频免费 | av免费在线网 | av不卡免费看 | 久久精品男人的天堂 | 波多野结衣在线视频免费观看 | 午夜国产一区 | 久久99热久久99精品 | 久久伊人八月婷婷综合激情 | 狠狠色噜噜狠狠狠狠 | 国产视频在 | 夜夜骑天天操 | 日韩视频免费播放 | 国产视频日韩视频欧美视频 | 国产破处精品 | 奇米影视777四色米奇影院 | 一级黄色大片在线观看 | 激情综合网五月激情 | 一区二区三区免费在线观看视频 | 国产高清免费视频 | 亚洲免费在线看 | 国产亚洲情侣一区二区无 | 天天草天天操 | 亚洲日本va午夜在线影院 | 色婷婷www | 人人干天天射 | 午夜精品av | 久草在线免费在线观看 | 午夜国产一区 | 97视频在线看 | 国产精品美女视频网站 | 超碰个人在线 | 日韩免费电影网 | 免费看污网站 | 久久亚洲福利 | 亚洲精品国产精品国自产观看 | 国产黄色大片免费看 | 国产亚洲视频在线免费观看 | 久久国产精品一国产精品 | av不卡免费看 | 国产小视频在线观看免费 | 在线韩国电影免费观影完整版 | 亚洲婷婷免费 | 日韩二区在线 | 亚洲精品ww | 久久久99精品免费观看乱色 | 婷婷久操 | 日韩视频区| 最近中文字幕高清字幕在线视频 | 在线视频免费观看 | 欧美极品少妇xbxb性爽爽视频 | 肉色欧美久久久久久久免费看 | 精品久久久久久久久中文字幕 | 亚洲九九九在线观看 | 亚洲欧美日韩精品久久奇米一区 | 久久污视频 | 中文字幕丰满人伦在线 | 不卡av电影在线 | 美女网站视频免费黄 | 久久成人亚洲欧美电影 | 99视频黄 | 成年人在线观看免费视频 | 久久美女高清视频 | 免费在线观看毛片网站 | 91女人18片女毛片60分钟 | 日韩av看片 | 精品av网站 | 天天看天天干天天操 | 日韩中文字幕免费视频 | 69亚洲乱| 日本三级全黄少妇三2023 | 免费看亚洲毛片 | 丁香六月在线观看 | 日韩精品一区二区免费视频 | 韩国精品一区二区三区六区色诱 | 欧美在线一 | 国内久久视频 | 成人高清在线观看 | 婷婷av色综合 | 97在线视频免费观看 | 久久久综合精品 | 国产又粗又猛又爽又黄的视频先 | 麻豆国产精品一区二区三区 | 国产精品久久久久久久妇 | 色婷婷激情网 | 国产精品视频app | 久久久久久久久久久福利 | 成人久久毛片 | 免费三级网 | 亚洲精品色 | 在线观看成人 | 亚洲成a人片在线www | 日韩免费一区二区 | 国产成人av一区二区三区在线观看 | 91亚洲精品久久久久图片蜜桃 | 日韩理论片在线 | 综合国产在线 | 成人黄性视频 | 久二影院 | 亚洲精品视频网站在线观看 | 天堂资源在线观看视频 | 亚洲精品婷婷 | 99精品电影| 激情五月综合网 | 亚洲精品国产免费 | 黄色资源网站 | 综合久久五月天 | 国产色中涩| 99在线高清视频在线播放 | 午夜精品一二区 | 免费视频一二三区 | 国产亚洲精品久久久久动 | 国产小视频国产精品 | 日韩高清免费无专码区 | 一级成人网| 国产精品久久久久aaaa | 丁香视频全集免费观看 | 亚洲综合激情 | 色99导航 | 激情久久伊人 | 国内久久久久久 | 国产精品久久久久久欧美 | 成人免费观看网站 | 人人澡人摸人人添学生av | 免费一级片在线 | 九九免费在线观看视频 | 成人黄色毛片 | 日韩高清一二三区 | 成人a视频| 99国内精品久久久久久久 | 啪啪免费观看网站 | 日本3级在线观看 | 99久精品| 欧洲高潮三级做爰 | 日韩av在线资源 | 四虎成人精品在永久免费 | 日本三级久久久 | 欧美日一级片 | 日韩中文字幕电影 | 久久综合桃花 | 亚洲涩涩一区 | 国产精品永久在线观看 | 中文字幕电影高清在线观看 | 久久国产亚洲 | 亚洲天天综合网 | 日韩av成人在线 | 特级毛片在线 | 久久视频在线观看免费 | 亚洲激情在线观看 | 天天干,天天操,天天射 | 91精品久久久久久综合五月天 | 一本到在线 | 欧美一区二区三区在线播放 | 亚洲成年片 | 日韩免费中文字幕 | 日本中文字幕一二区观 | 99在线视频观看 | 综合色综合| 色婷婷中文 | 久久国产精品色av免费看 | 波多野结衣视频一区二区三区 | 丁香六月天婷婷 | 九九久久精品视频 | 国产亚洲久一区二区 | 色噜噜狠狠色综合中国 | 午夜精品久久一牛影视 | 激情五月婷婷综合 | 欧美午夜视频在线 | 国产69精品久久久久99尤 | 福利视频一区二区 | 青青久草在线 | 午夜久久福利 | 欧美日韩高清一区二区三区 | 国产精品毛片久久蜜 | 69欧美视频 | 久久精品亚洲精品国产欧美 | 日韩成人精品在线观看 | 亚洲一区日韩精品 | 国产护士hd高朝护士1 | 成人国产精品一区 | 天堂素人在线 | 日本3级在线观看 | 中文字幕第 | 999成人| 日韩特级黄色片 | 中文区中文字幕免费看 | 免费av电影网站 | 国产麻豆剧果冻传媒视频播放量 | 久久人人爽 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 激情综合网五月激情 | 亚洲天堂首页 | 亚洲一区二区精品3399 | 国产又粗又猛又爽又黄的视频免费 | 久久理论视频 | 日韩黄色一级电影 | 在线观看的a站 | 一级做a爱片性色毛片www | 天天操夜夜曰 | 在线免费观看不卡av | 免费色网站 | 四虎影视欧美 | 免费看污污视频的网站 | 日韩在线在线 | 日韩久久精品一区二区 | 亚洲一级片在线观看 | 亚洲一区av | 免费中文字幕 | 亚洲一区二区精品 | 国产淫片免费看 | 成人精品一区二区三区中文字幕 | 69av网| 国产精品日韩在线 | 天天干天天综合 | 精品久久久久久久久久 | 国产三级精品三级在线观看 | 青青河边草手机免费 | 日韩免费视频网站 | 国产一级在线看 | 91九色porn在线资源 | 成人免费观看在线视频 | 狠狠色丁香婷婷综合 | 亚洲人人网| 日韩三级久久 | 中文字幕色在线视频 | 婷婷视频在线观看 | 欧美福利片在线观看 | 国产女人18毛片水真多18精品 | 少妇超碰在线 | 亚洲精品高清视频在线观看 | 99久精品视频 | 成年人免费在线观看网站 | 日韩高清精品免费观看 | 999精品在线| 天天色天天综合网 | 中文字幕一区二区三区视频 | 中文国产字幕 | 探花视频在线观看免费 | 国产色区 | 亚洲一区二区三区毛片 | 久久er99热精品一区二区三区 | 中文字幕免费一区 | 亚洲国产精品久久久久婷婷884 | 中文在线天堂资源 | 天天操天天舔天天爽 | 五月婷婷在线视频观看 | 久草视频在线免费看 | 久久国产精品一区二区 | 国产97在线视频 | 五月天婷婷免费视频 | 久久久受www免费人成 | 天天爽天天爽天天爽 | 日日夜夜狠狠干 | 激情五月色播五月 | 国产一区二区三区视频在线 | 久热这里有精品 | 久久久国产精品一区二区中文 | 亚洲伦理电影在线 | 午夜av一区二区三区 | 伊人激情网 | 欧美小视频在线观看 | 日韩激情久久 | 丰满少妇高潮在线观看 | 亚洲欧美视频在线播放 | 欧美色图30p| 免费一级片观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产精品va最新国产精品视频 | 少妇性bbb搡bbb爽爽爽欧美 | 日韩av伦理片 | www.天天干.com | 狠狠干电影 | 97免费在线观看视频 | 欧美日韩在线网站 | www178ccom视频在线| 欧美久草在线 | 9幺看片 | 国产精品都在这里 | 毛片激情永久免费 | 在线一二区 | 久久久久久久久久亚洲精品 | 久久精品视频在线观看免费 | 中文视频在线播放 | 日韩最新理论电影 | 国产一级做a| 久久综合九色综合97_ 久久久 | 欧美日韩高清不卡 | 国产精品久久久久免费 | 成年人免费在线观看 | www天天操| 99热超碰 | 91精品国产麻豆国产自产影视 | 韩日电影在线观看 | 日韩中文在线观看 | 国产美女精品人人做人人爽 | 久久中文字幕导航 | 在线亚洲天堂网 | 欧美成a人片在线观看久 | 日本性视频 | 深夜免费福利视频 | 国产美女精品视频 | 国产一区二区高清 | 久久精品久久综合 | 国产一在线精品一区在线观看 | 日韩丝袜在线观看 | 亚洲精品久久久久中文字幕二区 | 国产精品青青 | 99草在线视频 | 91精品国产92久久久久 | 欧美日韩精品在线视频 | 91你懂的| 在线久热 | 91久久国产露脸精品国产闺蜜 | 欧美一性一交一乱 | 一区二区精品久久 | 久久优| 亚洲精品资源在线观看 | 在线观看爱爱视频 | 欧美成人免费在线 | 久久久国产精品成人免费 | 国产一区二区在线观看视频 | 亚洲午夜不卡 | 成人久久久久久久久久 | 成人国产网站 |