精华内容
参与话题
问答
  • 这是用Telerik ChartView设计的股票数据采集及分析软件,目前只完成了数据的采集和图形呈现,还没有加入分析功能,采集功能:从网上下载股票数据转换成Excel,导入系统,同时系统根据当前股票交易时间在设定后自动从...
  • ChartView.zip

    2019-07-03 19:58:55
    ChartView介绍: 绘制曲线图,可以自适应水平或者垂直的屏幕方向。Demo中,绘制了正弦函数。   测试环境: Eclipse 4.2, Android 3.0 以上。 注意:测试环境并不代表适用环境。  
  • chartView.zip

    2020-07-26 15:13:38
    qml和C++混合编程自定义chartView曲线,曲线随时间从右向左依次移动动态移动,实时动态显示折线图的功能。
  • <p>On iPhone 4s, looks like the ChartModel is greater than the ChartView, and chart view is clipping the bottom of the chart. <p>The same code works well on other newer devices. I'm not sure if it...
  • 在用qml的 ChartView控件编写折线图,想实时更新数据,每秒一个新的数据,但当数据到达ValueAxis的max值之后,更新数据会出现横坐标轴的更新,数值会从0处不断的滑动至相应位置 ,我的理想需求是,仅仅数值变,横...
  • Android自定义图表:ChartView

    千次阅读 2016-06-27 16:44:06
    效果图 Design images : View Code:/** * Created by JackWaiting on 2016/6/24. */ public class CharView extends View { private Paint mRowLinePaint,mColLinePaint; //横线、竖线的画笔 ...

    效果图
    Design images :
    这里写图片描述

    View Code:

    /**
     * Created by JackWaiting on 2016/6/24.
     */
    public class CharView extends View {
    
        private  Paint mRowLinePaint,mColLinePaint;  //横线、竖线的画笔
        private Paint redPaint,greenPaint,yellowPaint;
        private Paint mColTextPaint;  //横坐标画笔
        private int mTopPadding, mLeftPadding, mRightPadding, mBottomPadding;  //图标距离上下左右的边距
        private int mFontHeight, mFontTopMargin;  //字体的高度与字体上方的边距
        private int mRowNumber = 7, mColNumber = 30;  //行与列
        private int[] mRowYs,mColYs,mColTextYs;  //装动态行列坐标的数组
        private int mRowHeight, mColWidth;  //行高与列高
        private int mRowLineWidth , mColLineWidth ; //行线与列线的宽度
        private int mRowStartX, mRowEndX,mColStartY,mColEndY;
        private int mColTextWidth,mColTextHeight;
        private float[] lifeTimeData = new float[mColNumber+1];  //每月最多31个值
        private int mLifeTimeWidth;
        private float lifeTimeHeight;  //由于高度的精确度比较高,建议使用float
        private float mLifeTimeStartX[],mLifeTimeEndX[],mLifeTimeStartY[],mLifeTimeEndY[];
        private float mMaxLifeTimeData = 8f,mOneRowTip = 7.45f,mTwoRowTip = 6.34f,mThreeRowTip = 6.18f,mFourRowTip = 5.97f;
        private float mRowTipData[] = new float[]{0f,7.45f,0f,0f,6.34f,6.18f,5.97f,0f}; //不显示则用0f表示
        private String[] chars = new String[]{"0","5","10","15","20","25","30"};
        private  Path path;
        private int mCircleRadius = 20;
        private PathEffect effects;
        private int mRowTipWidth =150,mRowTipHeight = 60;
    
        public CharView(Context context) {
            super(context);
            init(context,null,0);
        }
    
        public CharView(Context context, AttributeSet attrs) {
            super(context, attrs);
            init(context,null,0);
        }
    
        public CharView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            init(context,attrs,defStyleAttr);
        }
    
        public void getLifeTimeData(float [] data){
            this.lifeTimeData = data;
        }
    
        private void init(Context context,AttributeSet attrs,int defStyle) {
            mTopPadding =  PixelUtil.dp2px(50, getContext());
            mRowLineWidth = PixelUtil.dp2px(1, getContext());
            mColLineWidth = PixelUtil.dp2px(1, getContext());
            mLeftPadding = PixelUtil.dp2px(20, getContext());
            mRightPadding = PixelUtil.dp2px(20, getContext());
            mBottomPadding = PixelUtil.dp2px(55, getContext());
            mFontHeight = PixelUtil.dp2px(10, getContext());
            mFontTopMargin = PixelUtil.dp2px(15, getContext());
            TypedArray a = context.obtainStyledAttributes(attrs,
                    R.styleable.MyCharView);
            effects= new DashPathEffect(new float[]{5,5,5,5},10);
            path = new Path();
            mRowLinePaint = new Paint();
            mRowLinePaint.setColor(a.getColor(R.styleable.MyCharView_cv_row,getResources().getColor(R.color.row)));
            mRowLinePaint.setStrokeWidth(mRowLineWidth);
            mColLinePaint = new Paint();
            mColLinePaint.setColor(a.getColor(R.styleable.MyCharView_cv_col,getResources().getColor(R.color.col)));
            mColLinePaint.setStrokeWidth(mColLineWidth);
            mColLinePaint.setStyle(Paint.Style. STROKE);
            mColLinePaint.setAntiAlias( true);
            redPaint = new Paint();
            redPaint.setColor(a.getColor(R.styleable.MyCharView_cv_red,getResources().getColor(R.color.red)));
            redPaint.setStrokeWidth(PixelUtil.dp2px(2, getContext()));
            greenPaint = new Paint();
            greenPaint.setColor(a.getColor(R.styleable.MyCharView_cv_green,getResources().getColor(R.color.green)));
            greenPaint.setStrokeWidth(PixelUtil.dp2px(2, getContext()));
            yellowPaint = new Paint();
            yellowPaint.setColor(a.getColor(R.styleable.MyCharView_cv_row,getResources().getColor(R.color.yellow)));
            yellowPaint.setStrokeWidth(PixelUtil.dp2px(2, getContext()));
    
            mColTextPaint = new Paint();
            mColTextPaint.setColor(a.getColor(R.styleable.MyCharView_cv_row,Color.WHITE));
            mColTextPaint.setTextSize(50);
        }
    
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            for (int i= 0;i<mColYs.length;i++){
                if(i%5==0){
                    canvas.drawLine(mColYs[i], mColStartY, mColYs[i],mColEndY, mRowLinePaint);
                    canvas.drawText(chars[i/5]+"",mColTextYs[i/5]-(mColWidth/2), mColTextHeight,mColTextPaint);
                }
                else{
                    //canvas.drawLine(mColYs[i], mColStartY, mColYs[i],mColEndY, mColLinePaint);
                    path.moveTo(mColYs[i], mColStartY);
                    path.lineTo(mColYs[i],mColEndY);
                    mColLinePaint.setPathEffect(effects);
                    canvas.drawPath(path, mColLinePaint);
                }
            }
    
            for (int i= 0;i<mRowYs.length;i++){
                canvas.drawLine(mRowStartX, mRowYs[i], mRowEndX, mRowYs[i], mRowLinePaint);
            }
    
            for (int i= 0;i<lifeTimeData.length-1;i++){
                if(lifeTimeData[i] >mOneRowTip){
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], redPaint);
                    drawCircleView(i,redPaint,canvas);
                }
                else if(lifeTimeData[i] >mTwoRowTip && lifeTimeData[i] <= mOneRowTip){
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], greenPaint);
                    drawCircleView(i,greenPaint,canvas);
                }
                else if(lifeTimeData[i]  >mThreeRowTip && lifeTimeData[i] < mTwoRowTip){
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], greenPaint);
                    drawCircleView(i,greenPaint,canvas);
                }
                else if(lifeTimeData[i]  >mFourRowTip && lifeTimeData[i] <= mThreeRowTip){
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], yellowPaint);
                    drawCircleView(i,yellowPaint,canvas);
                }
                else if(lifeTimeData[i]  >=0 && lifeTimeData[i] <= mFourRowTip){
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], redPaint);
                    drawCircleView(i,redPaint,canvas);
                }
                else{
                    canvas.drawLine(mLifeTimeStartX[i], mLifeTimeStartY[i], mLifeTimeEndX[i], mLifeTimeEndY[i], redPaint);
                }
            }
            //最后一点无法循环到,手动赋值
            canvas.drawCircle(mLifeTimeStartX[30],mLifeTimeStartY[30], mCircleRadius,redPaint);
            for(int i=0;i< mRowYs.length;i++){
    
                if(i==0 ||i==2 ||i == 3 ||i == 7){
                    continue;
                }
                else{
                    canvas.drawRect(0, mRowYs[i]-mRowTipHeight/2,mRowTipWidth, mRowYs[i]+mRowTipHeight/2, mRowLinePaint);  // 矩形
                    canvas.drawText(mRowTipData[i]+"",20, mRowYs[i]+20,mColTextPaint);  //给每个矩形进行参数赋值
                }
    
            }
        }
    
    
        //每隔5个点画圆
        private void  drawCircleView(int i,Paint paint,Canvas canvas){
            if(i%5==0){
                canvas.drawCircle(mLifeTimeStartX[i],mLifeTimeStartY[i], mCircleRadius,paint);
            }
        }
    
        @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            int viewWidth = w - mLeftPadding - mRightPadding;
            int viewHeight = h - mTopPadding - mBottomPadding - mFontHeight - mFontTopMargin;
            mColTextHeight = h - mTopPadding  - mFontTopMargin;
            mRowStartX = mLeftPadding - mRowLineWidth/2;
            mRowEndX = w - mRightPadding  - (mRowLineWidth*mRowNumber)+mRowLineWidth/2;
            mColStartY = mTopPadding -mColLineWidth/2;
            mColEndY  =  h-mBottomPadding - mFontHeight - mFontTopMargin - (mRowNumber+1);
            mRowYs = new int[mRowNumber + 1];
            mColYs = new int[mColNumber + 1];
            mColTextYs = new int[chars.length];
            mRowHeight = (viewHeight-(mRowNumber+1)*mRowLineWidth)/mRowNumber;
            mColWidth  = (viewWidth - (mColNumber+1)*mColLineWidth)/mColNumber;
            for (int i = 0; i < mRowYs.length ; i++){
                mRowYs[i] = mTopPadding + i * (mRowHeight+mRowLineWidth) ;
            }
            for (int i = 0; i < mColYs.length ; i++){
                mColYs[i] = mLeftPadding + i * (mColWidth+mColLineWidth);
            }
            for (int i = 0; i < mColTextYs.length ; i++){
                mColTextYs[i] = mLeftPadding + i * (mColWidth+mColLineWidth)*5;
            }
    
            //具体画线
            mLifeTimeStartX = new float[mColNumber+1];
            mLifeTimeStartY = new float[mColNumber+1];
            mLifeTimeEndX = new float[mColNumber+1];
            mLifeTimeEndY = new float[mColNumber+1];
            for (int i=0;i<mLifeTimeStartX.length;i++){
                mLifeTimeStartX[i] =  mLeftPadding + i * (mColWidth+mColLineWidth);
            }
            for (int i=0;i<mLifeTimeEndX.length;i++){
                mLifeTimeEndX[i] =  mLeftPadding +mColWidth+mColLineWidth+ i * (mColWidth+mColLineWidth);
            }
            getLifeTime();
        }
    
        //获取每个点进行连接
        private void getLifeTime() {
    
            //计算Y轴的坐标
            for (int i = 0;i<lifeTimeData.length;i++){
                if(lifeTimeData[i] >=mOneRowTip){
                    mLifeTimeStartY[i] = mTopPadding + (((mMaxLifeTimeData-mOneRowTip)-(lifeTimeData[i]-mOneRowTip))/(mMaxLifeTimeData-mOneRowTip))*(mRowHeight+mRowLineWidth);
                }
                else if(lifeTimeData[i] >mTwoRowTip && lifeTimeData[i] < mOneRowTip){
                    mLifeTimeStartY[i] = mTopPadding + mRowHeight+mRowLineWidth+ (((mOneRowTip-mTwoRowTip)-(lifeTimeData[i]-mTwoRowTip))/(mOneRowTip-mTwoRowTip))*3*(mRowHeight+mRowLineWidth);
                }
                else if(lifeTimeData[i]  >=mThreeRowTip && lifeTimeData[i] < mTwoRowTip){
                    mLifeTimeStartY[i] = mTopPadding + ((mRowNumber+1)/2)*(mRowHeight+mRowLineWidth) + (((mTwoRowTip-mThreeRowTip)-(lifeTimeData[i]-mThreeRowTip))/(mTwoRowTip-mThreeRowTip))*(mRowHeight+mRowLineWidth);
                }
                else if(lifeTimeData[i]  >mFourRowTip && lifeTimeData[i] < mThreeRowTip){
                    mLifeTimeStartY[i] = mTopPadding + ((mRowNumber+1)-3)*(mRowHeight+mRowLineWidth)+ (((mThreeRowTip-mFourRowTip)-(lifeTimeData[i]-mFourRowTip))/(mThreeRowTip-mFourRowTip))*(mRowHeight+mRowLineWidth);
                }
                else if(lifeTimeData[i]  >=0 && lifeTimeData[i] <= mFourRowTip){
                    mLifeTimeStartY[i] = mTopPadding + ((mRowNumber+1)-2)*(mRowHeight+mRowLineWidth)+ ((mFourRowTip-lifeTimeData[i])/mFourRowTip)*(mRowHeight+mRowLineWidth);
                }
                else{
                    mLifeTimeStartY[i] = mTopPadding + mRowNumber * ( mRowHeight + mRowLineWidth );
                }
            }
            //把Y轴连在一起
            for (int i=1;i<mLifeTimeStartY.length;i++){
                mLifeTimeEndY[i-1] = mLifeTimeStartY[i];
            }
            //mLifeTimeEndY[mLifeTimeStartX.length-1 ] = mLifeTimeStartY[mLifeTimeStartX.length-1];
        }
    }

    ——————————————————————————–

    Update

    之前的代码只是对图表进行绘制,并未做点击事件,正常的图表是在点击某项数据的时候,会展现出来数据,本次更新已解决此问题。
    效果图:

    这里写图片描述

    update view code:

    @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            drawCharts(canvas);
            if(mSpot >= 0 && mSpot <= 30){
                 if(mLifeTimeStartY[mSpot] >=mTopPadding +mRowHeight+mRowLineWidth &&mLifeTimeStartY[mSpot] <=mTopPadding +5*(mRowHeight+mRowLineWidth)){
                    drawTouchData(canvas,greenPaint);
                }
                else if(mLifeTimeStartY[mSpot] >=mTopPadding +5*(mRowHeight+mRowLineWidth) &&mLifeTimeStartY[mSpot] <=mTopPadding +6*(mRowHeight+mRowLineWidth)){
                    drawTouchData(canvas,yellowPaint);
                }
                else{
                    drawTouchData(canvas,redPaint);
                 }
            }
    
        }
    
            @Override
        public boolean onTouchEvent(MotionEvent event) {
    
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    if(ignoreTouch(event.getX(),event.getY())){
                        mSpot = getTouchSpot(event.getX());
                        Log.i("进来了","ACTION_DOWN已处理"+mSpot);
    //                    setPressed(true);
                       invalidate();
                        return true;
                    }
                    else{
                        mSpot =-1;
                    }
                    break;
                case MotionEvent.ACTION_MOVE:
                    break;
                case MotionEvent.ACTION_UP:
    //                setPressed(false);
                    break;
                case MotionEvent.ACTION_CANCEL:
    //                setPressed(false);
    
                    break;
            }
    
            return super.onTouchEvent(event);
        }
    
    
        //根据点击的范围获取到当前点击的点
        private int  getTouchSpot(float x) {
            int index = 0;
            for (int i = 0;i<mLifeTimeStartX.length;i++){
                if(x>mLifeTimeStartX[i]-mColWidth/2 && x<mLifeTimeEndX[i] -mColWidth/2){
                    index = i;
                }
            }
            return index;
        }
    
    
        //判断当前点击的范围是否需要处理
        private boolean ignoreTouch(float x , float y) {
            boolean ignore = false;
            if((x>=(mLeftPadding-mColWidth/2) &&x <=(mRowEndX+mColWidth/2))&&(y>=mTopPadding-mColWidth/2 && y<=mColEndY+mColWidth/2) ){
                ignore = true;
            }
            return  ignore;
        }
    
    
        //点击Touch后给出每个点的具体数据
        private void drawTouchData(Canvas canvas,Paint paint) {
            canvas.drawRect(mLifeTimeStartX[mSpot]-mRowTipWidth/2, mLifeTimeStartY[mSpot]-100-mRowTipHeight/2,mLifeTimeStartX[mSpot]+mRowTipWidth/2, mLifeTimeStartY[mSpot]+mRowTipHeight/2-100, paint);  // 矩形
            canvas.drawText(lifeTimeData[mSpot]+"",mLifeTimeStartX[mSpot]-mRowTipWidth/2+20, mLifeTimeStartY[mSpot]-80,mColTextPaint);  //查看任意一点的信息
        }

    最新代码已更新至Github,以下是下载链接:

    Code download:
    Github最新代码下载地址:https://github.com/JackWaiting/ChartView

    展开全文
  • iOS 自定义折线图 ChartView ,DChartView 是个可定制的可用于任何演示的折线图,它可以用 CoreGraphics 构建,...
  • Qt之ChartView

    2019-02-09 12:08:39
    1、ChartView与LineSeries搭配实现曲线局部缩放功能 https://blog.csdn.net/w54a3teg64c7bd/article/details/56843573 2、QLineSeries绘制动态曲线 ...

    1、ChartView与LineSeries搭配实现曲线局部缩放功能

    https://blog.csdn.net/w54a3teg64c7bd/article/details/56843573

    2、QLineSeries绘制动态曲线

    https://blog.csdn.net/a844651990/article/details/82706466

    展开全文
  • 该代码实现的功能有: 在qml 中,实现利用ChartView,进行直方图数据显示
  • 这个实例是对折线图,柱状图,饼图的,希望对广大朋友有所帮助,有什么问题可以联系我。。。。。。。。。。。。
  • 该文件实现的功能有: 将C++ 生成的数据, 在QML 中进行曲线显示(ChartView)。
  • ChartView QML 类型翻译

    千次阅读 2016-07-23 00:46:29
    ChartView QML 类型翻译

    ChartView QML 类型翻译

    PS 貌似 Qt 的图表接口参照 c# 的~

    翻译: qyvlik

    属性

    • animationDuration : int

    • animationEasingCurve : easing

    • animationOptions : Animation

    • axes : list<AbstractAxis>

    • backgroundColor : color

    • backgroundRoundness : real

    • count : int

    • dropShadowEnabled : bool

    • legend : Legend

    • locale : locale

    • localizeNumbers : bool

    • margins : Margins

    • plotArea : rect

    • plotAreaColor : color

    • theme : Theme

    • title : string

    • titleColor : color

    • titleFont : Font

    信号

    • seriesAdded(AbstractSeries series)

    • seriesRemoved(AbstractSeries series)

    方法

    • Axis axisX(AbstractSeries series)

    • Axis axisY(AbstractSeries series)

    • AbstractSeries createSeries(SeriesType type, string name, AbstractAxis axisX, AbstractAxis axisY)

    • isZoomed()

    • point mapToPosition(point value, AbstractSeries series)

    • point mapToValue(point position, AbstractSeries series)

    • removeAllSeries()

    • removeSeries(AbstractSeries series)

    • scrollDown(real pixels)

    • scrollLeft(real pixels)

    • scrollRight(real pixels)

    • scrollUp(real pixels)

    • AbstractSeries series(string name)

    • AbstractSeries series(int index)

    • setAxisX(AbstractAxis axis, AbstractSeries series)

    • setAxisY(AbstractAxis axis, AbstractSeries series)

    • zoom(real factor)

    • zoomIn(rect rectangle)

    • zoomIn()

    • zoomOut()

    • zoomReset()

    详细描述

    ChartView 是多个不同类型图表实体的父级展示空间。

    如下代码展示了一个饼图:

    import QtQuick 2.0
    import QtCharts 2.0
    
    ChartView {
        width: 400
        height: 300
        theme: ChartView.ChartThemeBrownSand
        antialiasing: true
    
        PieSeries {
            id: pieSeries
            PieSlice { label: "eaten"; value: 94.9 }
            PieSlice { label: "not yet eaten"; value: 5.1 }
        }
    }

    这里写图片描述

    可以先参照如下的图:

    微软Chart属性学习

    这里写图片描述

    属性文档

    • animationDuration : int

      图表视图的动画时长。

    • animationEasingCurve : easing

      动画的类型,动画时间与输出数值的函数类型,例如二次贝塞尔。参照 Animation.easing 的属性组进行设置。

    • animationOptions : Animation

      图表视图的动画类选项。取值可能如下:

      • ChartView.NoAnimation

      • ChartView.GridAxisAnimations

      • ChartView.SeriesAnimations

      • ChartView.AllAnimations

    • axes : list<AbstractAxis>

      图表视图的多个轴。

    • backgroundColor : color

      图表视图的背景颜色,默认背景颜色和 ChartView.theme 所设置的一样。

    • backgroundRoundness : real

      背景圆角。

    • count : int

      图表视图中有几个图表。

    • dropShadowEnabled : bool

      图表视图的阴影。

    • legend : Legend

      图表视图的图例说明。可以通过 legend.visible 设置图例说明是否可见。legend.font 设置字体。详情请看 Legend

    • locale : locale

      本地化文本选项,例如数字之间是否要使用逗号隔开。

    • localizeNumbers : bool

      是否设置本地化文本。

    • margins : Margins

      定义内边距。边距内部是图表视图用来绘制标题,轴(坐标)和图例说明的。

    • plotArea : rect

      图表区大小。

    • plotAreaColor : color

      图表区颜色。

    • theme : Theme

      图表视图的主题设定。

      有如下值:

      • ChartView.ChartThemeBlueCerulean

      • ChartView.ChartThemeBlueIcy

      • ChartView.ChartThemeBlueNcs

      • ChartView.ChartThemeBrownSand

      • ChartView.ChartThemeDark

      • ChartView.ChartThemeHighContrast

      • ChartView.ChartThemeLight

      • ChartView.ChartThemeQt

    • title : string

      图表视图标题。

    • titleColor : color

      图表视图标题颜色。

    • titleFont : Font

      图表视图标题字体。

    信号文档

    • seriesAdded(AbstractSeries series)

      当有新的 series 添加到图表视图中时触发。

    • seriesRemoved(AbstractSeries series)

      当从图表视图中移除 series 时触发。

    方法文档

    • Axis axisX(AbstractSeries series)

      某个图表的 x 轴。

    • Axis axisY(AbstractSeries series)

      某个图表的 y 轴。

    • AbstractSeries createSeries(SeriesType type, string name, AbstractAxis axisX, AbstractAxis axisY)

      用来创建对应类型的图表。用法如下:

      // lineSeries is a LineSeries object that has already been added to the ChartView; re-use it's axes
      var myAxisX = chartView.axisX(lineSeries);
      var myAxisY = chartView.axisY(lineSeries);
      var scatter = chartView.createSeries(ChartView.SeriesTypeScatter, "scatter series", myAxisX, myAxisY);

      其中 SeriesType 有如下值:

      • ChartView.SeriesTypeArea

      • ChartView.SeriesTypeBar

      • ChartView.SeriesTypeBoxPlot

      • ChartView.SeriesTypeHorizontalBar

      • ChartView.SeriesTypeHorizontalPercentBar

      • ChartView.SeriesTypeHorizontalStackedBar

      • ChartView.SeriesTypeLine

      • ChartView.SeriesTypePercentBar

      • ChartView.SeriesTypePie

      • ChartView.SeriesTypeScatter

      • ChartView.SeriesTypeSpline

      • ChartView.SeriesTypeStackedBar

    • isZoomed()

      如果图表视图中任意一个图表实体被缩放或者放大,返回 true

    • point mapToPosition(point value, AbstractSeries series)

      将在图表视图上的点映射为图表实体上的点。

    • point mapToValue(point position, AbstractSeries series)

      将在图表实体上的点映射为图表视图上的点。

    • removeAllSeries()

      移除所有的图表实体。

    • removeSeries(AbstractSeries series)

      移除指定的图表实体。

    • scrollDown(real pixels)

      将图表视图内容向下滚动指定像素。

    • scrollLeft(real pixels)

      将图表视图内容向左滚动指定像素。

    • scrollRight(real pixels)

      将图表视图内容向右滚动指定像素。

    • scrollUp(real pixels)

      将图表视图内容向上滚动指定像素。

    • AbstractSeries series(string name)

      通过名字来获取图表实体。如果有同名,只返回第一个匹配的图表实体。

    • AbstractSeries series(int index)

      通过下标来获取图标实体。

    • setAxisX(AbstractAxis axis, AbstractSeries series)

      为图标实体设置 x 轴。

    • setAxisY(AbstractAxis axis, AbstractSeries series)

      为图标实体设置 y 轴。

    • zoom(real factor)

      设置缩放因子。默认为 1。有效值为 0.0 到 1.0。

    • zoomIn(rect rectangle)

      将视图放大到指定的 rect 范围。

    • zoomIn()

      放大视图。

    • zoomOut()

      缩小视图。

    • zoomReset()

      重置视图大小。

    展开全文
  • 在使用 QML 显示 Chart 的时候,使用了 ChartView ,新建了默认的 Qt Quick 工程,粘贴 Qt 文档中 ChartView 的例子,粘贴后编译通过了,然后,程序崩溃!  经过一番百度之后。发现, 在使用 ChartView 的时候,...

      环境:Windows 7 旗舰版 64 位 ,Qt 5.8 for android !

    在使用 QML 显示 Chart 的时候,使用了 ChartView ,新建了默认的 Qt Quick 工程,粘贴 Qt 文档中 ChartView 的例子,粘贴后编译通过了,然后,程序崩溃!

      经过一番百度之后。发现, 在使用 ChartView 的时候,pro 工程文件中需要加入 QT += charts 。然后 main 函数中不能使用 QGuiApplication,需要使用 QApplication 才行,二者缺一不可,否则会导致程序莫名的崩溃而不会报告错误!

      Qt 官方文档中对 ChartView 的描述部分并没有指定添加  QT += charts,可能是忘记了吧,至于  QGuiApplication 和 QApplication 的区别,QApplication 作为前者的子类,可能实现了一些和 Chart 有关的东西,遇到了这个问题。在这里记下来,供诸位参考。

    转载于:https://www.cnblogs.com/hbrw/p/7484758.html

    展开全文
  • QML中ChartView的动态加载

    千次阅读 2018-11-22 23:35:42
    QML中chartView的部分用法QML中关于ChartView的引用1.默认安装的QT好像是不带QT Charts2.修改.pro文件3.修改main.c文件QML中ChartView的动态加载 QML中关于ChartView的引用 在使用Qt Creator中默认创建的QML工程是...
  • https://blog.csdn.net/qyvlik/article/details/52001754
  • 昨天本来是回家想好好琢磨一下使用Chart来绘制曲线的,奈何在建立项目的时候也就卡住了,加上心情比较烦躁,也没有耐心寻找答案就草草了事。所以今天继续搞定这个。 上图是Qt 的编译错误截图 ...
  • QML ChartView 折线图缩放 移动 截图

    千次阅读 2018-10-09 18:28:20
    最近使用QML 提供的ChartView LineSeries控件实现了数据折线图 QT版本:Qt5.9.6 功能点: 1.点击界面open按钮可以选取文件,之后自动解析数据,获取需要显示的数据点 2.数据以折线图方式显示 3.鼠标滚轮上下可缩放...
  • android 7个点折线图 chartview

    千次阅读 2016-04-22 14:09:03
    自定义折线图,可以随手势移动查看选中的数据。

空空如也

1 2 3 4 5 ... 10
收藏数 192
精华内容 76
关键字:

chartview