亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ChartView與LineSeries搭配實現曲線局部縮放功能

2019-11-08 00:03:58
字體:
來源:轉載
供稿:網友

效果圖:

上一篇文章實現的時候還不知道有QtChart這個模塊......好好看了下資料就想做個例子實現一下這功能,比較了下代碼量...恩,直接看代碼:

    Rectangle {        id: view_rect        anchors.fill: parent//        anchors.topMargin: 40        ChartView {            id: view            title: "Two Series, Common Axes"            anchors.fill: parent            legend.visible: false            antialiasing: true            PRoperty point hoveredPoint: Qt.point( 0, 0 )            property bool hovered: false            ValueAxis {                id: axisX                min: 0                max: 50                tickCount: 5            }            ValueAxis {                id: axisY                min: -0.5                max: 1.5            }            LineSeries {                id: series1                axisX: axisX                axisY: axisY                onHovered: {//                    view.hoveredPoint = point//                    view.hovered = state                }            }            MouseArea {                anchors.fill: parent                hoverEnabled: true                onPositionChanged: {                    var point = Qt.point( 0, 0 )                    point.x = mouse.x                    point.y = mouse.y                    var hoveredPoint = view.mapToValue( point, series1 )                    if( hoveredPoint.x >= 0 && hoveredPoint.x <= 50 ) {                        view.hovered = true                        view.hoveredPoint = hoveredPoint                    } else {                        view.hovered = false                    }                }                onWheel: {                    if( view.hovered ) {                        if( wheel.angleDelta.y > 0 ) {                            if( axisX.max - axisX.min <= 2 ) {                                return                            }                            view.zoomIn( view.hoveredPoint )                        } else {                            view.zoomOut( view.hoveredPoint )                            if( axisX.min <= 0 ) {                                axisX.min = 0                            }                            if( axisX.max >= 50 ) {                                axisX.max = 50                            }                        }                    }                }            }            function zoomIn( hoveredPoint ) {                if( hoveredPoint.x - axisX.min <= 1 ) {                    return                }                var scale = parseFloat( ( hoveredPoint.x - axisX.min ) / ( axisX.max - axisX.min ) )                axisX.min++                axisX.max = ( hoveredPoint.x - axisX.min ) / scale + axisX.min            }            function zoomOut( hoveredPoint ) {                var scale = parseFloat( ( hoveredPoint.x - axisX.min ) / ( axisX.max - axisX.min ) )                axisX.min--                axisX.max = ( hoveredPoint.x - axisX.min ) / scale + axisX.min            }        }        // Add data dynamically to the series        Component.onCompleted: {            for (var i = 0; i <= 50; i++) {                series1.append(i, Math.random());            }        }    }

實現該功能最關鍵在于獲取鼠標位置對應的坐標值,ChartView提供一個方法mapToValue,指明一個point與series,就可獲得這個point對應series的坐標值?,F在通過一個覆蓋整個ChartView的MouseArea獲取mouse,轉換成point,當鼠標在坐標軸內移動時,就可記錄到hoveredPoint內。放大功能我寫在zoomIn函數內,這里每次放大的值只是將最小值+1,可自己調整。注意一點的是hoverPoint.x是不能小于axisX.min的,所以我在放大前做了判斷;縮小功能我寫在zoomOut函數內,這邊是想讓曲線飽滿的覆蓋在整個坐標內,所以對兩個極端做了判斷,超出范圍就將邊界值賦值給它;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲黄页网在线观看| 成年人精品视频| 久久亚洲综合国产精品99麻豆精品福利| 国产美女高潮久久白浆| 国产精品无av码在线观看| 7777精品视频| 精品五月天久久| 日韩精品一区二区三区第95| 欧美日韩国产中文精品字幕自在自线| 国产98色在线| 国内精品模特av私拍在线观看| 欧美激情精品在线| 色婷婷综合久久久久中文字幕1| 欧美激情xxxx性bbbb| 深夜福利国产精品| 91夜夜揉人人捏人人添红杏| 色哟哟入口国产精品| 日韩在线播放av| 日韩精品福利网站| 国模精品一区二区三区色天香| 久久久免费高清电视剧观看| 亚洲成人激情小说| 91精品国产自产在线观看永久| 久久精品一本久久99精品| 欧美最猛性xxxxx免费| 538国产精品一区二区在线| 久久久精品影院| 伦伦影院午夜日韩欧美限制| 国产一区二区三区久久精品| 亚洲精品一区二区在线| 浅井舞香一区二区| 日韩欧美在线免费| 日韩精品免费在线观看| 色爱精品视频一区| 日本在线精品视频| 欧美猛交ⅹxxx乱大交视频| 国产精品久久久久久久电影| 青青青国产精品一区二区| 亚洲女人天堂成人av在线| 国产精品视频最多的网站| 亚洲国产精品久久久久秋霞蜜臀| 在线观看日韩专区| 午夜剧场成人观在线视频免费观看| 亚洲a级在线播放观看| 中文字幕亚洲在线| 51午夜精品视频| 69久久夜色精品国产7777| 免费99精品国产自在在线| 黄色一区二区三区| 欧美日韩亚洲高清| 91伊人影院在线播放| 伊人男人综合视频网| 91在线高清免费观看| 国产精品久久久久7777婷婷| 伊人激情综合网| 亚洲第一国产精品| 亚洲最大av网站| 91在线免费观看网站| 欧美高清视频在线观看| 91精品国产91久久久久久最新| 久久久欧美一区二区| 97久久精品视频| 亚洲精品视频久久| 欧美大人香蕉在线| 91在线观看免费高清| 亚洲久久久久久久久久久| 亚洲国产美女久久久久| 国产亚洲精品久久久久久牛牛| 国产一区欧美二区三区| 中文字幕一精品亚洲无线一区| 97免费中文视频在线观看| 97视频在线观看免费高清完整版在线观看| 成人高清视频观看www| 有码中文亚洲精品| 欧美视频免费在线| 国产精品揄拍500视频| 久久综合九色九九| 国产一区深夜福利| 日韩精品有码在线观看| 久久久久久成人| www.久久草.com| 亚洲第一综合天堂另类专| 国产亚洲精品高潮| 国产精品情侣自拍| 68精品国产免费久久久久久婷婷| 亚洲成色777777在线观看影院| 日本精品一区二区三区在线| 日韩精品视频在线观看网址| 欧美另类69精品久久久久9999| 亚洲一区av在线播放| 欧美激情极品视频| 亚洲风情亚aⅴ在线发布| 亚洲第一网站免费视频| 久久久精品电影| 久久精品免费电影| 91探花福利精品国产自产在线| 亚洲美女av在线| 另类少妇人与禽zozz0性伦| 久久乐国产精品| 欧美丰满少妇xxxxx做受| 91亚洲精品在线| 欧美精品少妇videofree| 日韩欧美在线视频| 日韩欧美中文免费| 美女少妇精品视频| 国产69精品久久久久久| 91九色视频导航| 亚洲一区二区中文| 国产精品视频久久| 中文字幕亚洲一区| 中文字幕亚洲欧美日韩在线不卡| 中文字幕亚洲色图| 亚洲精品自在久久| 日韩激情片免费| 亚洲xxx自由成熟| 亚洲老司机av| 日韩毛片中文字幕| 国产大片精品免费永久看nba| 秋霞av国产精品一区| 国产视频福利一区| 精品无码久久久久久国产| 亚洲午夜av久久乱码| 亚洲精品国产综合区久久久久久久| 日韩一区二区三区在线播放| 国产精品一区二区三区久久久| 91久久精品国产91久久性色| 欧美日韩福利电影| 成人乱人伦精品视频在线观看| 在线不卡国产精品| 国产91在线播放精品91| 亚洲最大在线视频| 亚洲成年网站在线观看| 日韩av在线影院| 91在线观看免费高清| 在线观看欧美www| 国产成人福利夜色影视| 91九色国产社区在线观看| 亚州精品天堂中文字幕| 久久久久久亚洲精品不卡| 亚洲人成网在线播放| 亚洲丝袜一区在线| 成人精品视频久久久久| 中文字幕欧美日韩精品| 久久精品视频在线播放| 国产日韩在线播放| 性欧美亚洲xxxx乳在线观看| 国内精品国产三级国产在线专| 国产成人精品免高潮在线观看| 国产精品视频1区| 欧美午夜片欧美片在线观看| 欧美精品第一页在线播放| 91亚洲精华国产精华| 日韩精品在线电影| 欧美成人手机在线| 国产成人精品在线播放| 亚洲va男人天堂| 欧美性猛交xxxx偷拍洗澡| 影音先锋欧美在线资源| 日韩中文字幕视频在线观看| 亚洲精品电影网在线观看| 中文字幕精品一区久久久久| 91精品国产综合久久久久久久久| 亚洲乱码av中文一区二区| 欧美成人亚洲成人日韩成人|