• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            zhonghua

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks

            概念

            名稱 含義
            View 視圖 視覺(jué)化一個(gè)場(chǎng)景
            Scene 場(chǎng)景 用于管理圖形項(xiàng)
            Item 圖形項(xiàng) 具體的圖形對(duì)象

             

            QT的圖形視圖架構(gòu)采用Model-View模型,Scence里面包含多個(gè)Item,可以用多個(gè)View以不同的方式觀察一個(gè)Scence

            功能
            Scene(QGraphicsScene)

            • 添加,刪除,查詢圖項(xiàng)

            • 事件分發(fā)

            • 管理圖項(xiàng)的選擇狀態(tài)和焦點(diǎn)

            View (QGraphicsView)

            • 為Scene提供一個(gè)視圖接口
            • 接收鼠標(biāo)鍵盤(pán)事件,轉(zhuǎn)換后發(fā)給Scene
            • 負(fù)責(zé)View和Scence之間的坐標(biāo)變換 

            可以為View設(shè)置不同的ViewPort控件,比如QGLWidget來(lái)支持OpenGL,Read More!

            Item (QGraphicsItem)

             

            圖形項(xiàng)的基類是QGraphicItem

            基礎(chǔ)的Feature包括:

            • 處理鼠標(biāo)鍵盤(pán)事件
            • 拖放
            • 分組
            • 碰撞檢測(cè)

            每個(gè)圖形項(xiàng)都有自己的本例坐標(biāo)系統(tǒng),并提供它和場(chǎng)景坐標(biāo)的轉(zhuǎn)換函數(shù)。所以可以單獨(dú)旋轉(zhuǎn)或縮放某個(gè)一圖形項(xiàng)


            除了pos等很少的幾個(gè)函數(shù),圖形項(xiàng)的多數(shù)函數(shù)所處理的坐標(biāo)都是它的本地坐標(biāo)(例如bounding rect)

            坐標(biāo)系統(tǒng)

            如上所述視圖體系采用三種坐標(biāo)系統(tǒng):

            • 視口坐標(biāo): 對(duì)應(yīng)物理坐標(biāo)/設(shè)備坐標(biāo)
            • 場(chǎng)景坐標(biāo): 對(duì)應(yīng)邏輯坐標(biāo)
            • 項(xiàng)坐標(biāo): 本地坐標(biāo)

            window-viewport概念

            window指定了邏輯坐標(biāo)的矩形范圍,viewport指定了設(shè)備坐標(biāo)的矩形范圍,和WorldTransform(世界轉(zhuǎn)換矩陣)一起,決定了邏輯坐標(biāo)和設(shè)備坐標(biāo)之間的轉(zhuǎn)換

             

            可以使用QGraphicsItemAnimation來(lái)動(dòng)畫(huà)一個(gè)Item,使用QTimeLine來(lái)控制時(shí)間進(jìn)度

             

            其它特性

            Animation動(dòng)畫(huà)

            一個(gè)Item只能有效的和一個(gè)Animation對(duì)象關(guān)聯(lián)(by QGraphicsItemAnimation::setItem),因?yàn)锳nimation對(duì)象設(shè)置圖項(xiàng)Item的轉(zhuǎn)換矩陣時(shí),會(huì)替換對(duì)象現(xiàn)有的矩陣。 所以你不能通過(guò)綁定多個(gè)Animation對(duì)象來(lái)做多重動(dòng)畫(huà),但是你可以在一個(gè)Animation對(duì)象中設(shè)置多種變換效果(或者用分組的方法,分級(jí)控 制?)


            QGraphicsItemAnimation直接繼承自QObject,和普通的QAbstractAnimation沒(méi)有關(guān)系,所以沒(méi)法只用用QAnimationGroup來(lái)組裝,然后串行/并行使用多個(gè)動(dòng)畫(huà)。

             

            圖形控件和布局管理

            QGraphicsWidget的目的是在圖形對(duì)象的功能基礎(chǔ)上提供類似QWidget的功能。(從QGraphicsObject和 QGraphicsLayoutItem繼承來(lái)),從而可以使用完整的Widget控件屬性,設(shè)置字體,Style,提供size hints,以及信號(hào)槽機(jī)制等。

             

            QGraphicsLayout是專門(mén)用來(lái)布局QGraphicsWidget的布局控件。你可以通過(guò)多重繼承QGraphicsLayoutItem來(lái)定制QGraphicsItem使其能被QGraphicsLayout所管理

            嵌入普通控件

            你可以通過(guò)QGraphicsScene::addWidget來(lái)將一個(gè)普通QWidget嵌入到視圖體系中來(lái)使用,本質(zhì)是通過(guò)創(chuàng)建一個(gè)代理控件 (QGraphicsProxyWidget)來(lái)在QWidget和QGraphicsItem之間傳遞事件。需要注意的是,這只是一個(gè)特殊的實(shí)現(xiàn)方式, 對(duì)性能有要求的程序不宜使用這個(gè)機(jī)制。(沒(méi)有太看出哪里對(duì)性能有很大影響)

             

            QGraphicsProxyWidget能夠處理復(fù)雜的控件嵌套,甚至能自動(dòng)對(duì)被嵌套控件的子Popup Window控件創(chuàng)建代理控件。
             

            QGraphicsView本身也是一個(gè)普通QWidget控件,所以可以被添加到Scene中,創(chuàng)建復(fù)雜的嵌套視圖體系

            posted on 2013-02-06 10:38 米米 閱讀(2030) 評(píng)論(0)  編輯 收藏 引用 所屬分類: qt
            模特私拍国产精品久久| 91精品国产91久久久久久| 中文国产成人精品久久不卡| 久久天堂AV综合合色蜜桃网| 国产激情久久久久影院| 思思久久99热免费精品6| 久久精品亚洲中文字幕无码麻豆 | 狠狠色丁香久久婷婷综合蜜芽五月 | 老司机午夜网站国内精品久久久久久久久 | 久久人人爽人人爽人人片AV麻烦| 91视频国产91久久久| 一本综合久久国产二区| 精品综合久久久久久97超人| 久久综合视频网| 久久精品无码一区二区三区日韩| 久久亚洲日韩精品一区二区三区| 久久婷婷人人澡人人| 国产精品久久久久aaaa| 久久九九久精品国产免费直播| 91久久成人免费| 国产精品九九九久久九九| 久久99国产综合精品| 欧美黑人又粗又大久久久| 欧美精品九九99久久在观看| 亚洲国产婷婷香蕉久久久久久| 久久久久综合国产欧美一区二区| 久久精品一区二区三区不卡| 狠狠88综合久久久久综合网| 热re99久久6国产精品免费| 欧洲成人午夜精品无码区久久| 亚洲国产欧美国产综合久久| 亚洲精品乱码久久久久久不卡| 久久久久国产精品麻豆AR影院| 色综合久久精品中文字幕首页| 婷婷综合久久狠狠色99h| 久久亚洲国产精品一区二区| 国产精品久久永久免费| 亚洲天堂久久精品| 久久精品视屏| 国产成年无码久久久免费| 久久人人爽人人爽人人AV|