QT基于QPolarChart封装一个极坐标系类(控件显示)
1、首先需要下载相应的QChart库
一般在安装QT时会选择此库,如若没有,请自行下载。
2、在工程文件中添加:QT += charts
3、新建一个极坐标系的封装类PolarChart:
4、头文件:
(1)导入库
(2)添加:QT_CHARTS_USE_NAMESPACE
(3)实例相关类:
5、CPP文件:
(1)曲线设置
(2)角坐标系设置
(3)极坐标系设置
(4)极坐标系设置
(5)利用QChartView控件显示:
5、完整代码:
(1)h文件
其中void AddPoint(double Angular, double Radia)是数据接口函数。
#ifndef POLARCHART_H
#define POLARCHART_H#include <QChart>
#include <QtCharts/QSplineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QPolarChart>
#include <QChartView>QT_CHARTS_USE_NAMESPACEclass PolarChart
{
public:PolarChart();//画布QChartView *chartView;//图表QtCharts::QPolarChart* chart;//曲线QtCharts::QLineSeries* lineSerises;//角度坐标轴QtCharts::QValueAxis* angularAxis;//弧长坐标轴QtCharts::QValueAxis *radialAxis;void AddPoint(double Angular, double Radia);//设置图表标题void setChartName(QString Name);//极坐标角度范围 默认0~360void setRangeAng(int A0, int A1);//极坐标弧长范围 默认0~200void setRangeRad(int R0, int R1);//视图显示大小 默认800*800void setResizeView(int wide, int heigh);//设置画点是否标记可见 默认不可见void setPointsVisible(bool ISVisible);};#endif // POLARCHART_H
(2)cpp文件
#include "polarchart.h"PolarChart::PolarChart()
{chart = new QtCharts::QPolarChart;chartView = new QChartView;lineSerises = new QtCharts::QLineSeries;angularAxis = new QtCharts::QValueAxis();radialAxis = new QtCharts::QValueAxis();lineSerises->setVisible(true); //曲线可见lineSerises->setColor(QColor(0,100,255)); //曲线颜色设置lineSerises->setPointsVisible(false); //曲线系列点标可见的设置chart->addSeries(lineSerises); //加入表中//将legend(图例)隐藏,当然,也可以选择不隐藏chart->legend()->hide();chart->setVisible(true);chart->setBackgroundBrush(QColor(0,0,0));//角度坐标轴设置//第一个和最后一个间隔位于0/360度角angularAxis->setTickCount(9);angularAxis->setLabelFormat("%.1f");//设置角度坐标系的范围是0~360度angularAxis->setRange(0,360);//将角度坐标轴加入到图形中去chart->addAxis(angularAxis,QtCharts::QPolarChart::PolarOrientationAngular);//设置弧长的坐标系设置radialAxis->setTickCount(5);radialAxis->setLabelFormat("%d");radialAxis->setRange(0,200);//将弧长坐标系加入到图形中去chart->addAxis(radialAxis,QtCharts::QPolarChart::PolarOrientationRadial);//将曲线和坐标轴绑定起来lineSerises->attachAxis(angularAxis);lineSerises->attachAxis(radialAxis);chartView->setChart(chart);chartView->resize(800, 800);chartView->show();}void PolarChart::AddPoint(double Angular, double Radia)
{//向曲线容器lineSerises中添加数据lineSerises->append(Angular,Radia);
}void PolarChart::setChartName(QString Name)
{chart->setTitleBrush(QBrush(QColor(0,0,255)));//设置标题Brushchart->setTitleFont(QFont("微软雅黑"));//设置标题字体chart->setTitle(Name);
}void PolarChart::setRangeAng(int A0, int A1)
{angularAxis->setRange(A0,A1);
}void PolarChart::setRangeRad(int R0, int R1)
{radialAxis->setRange(R0,R1);
}void PolarChart::setResizeView(int wide, int heigh)
{chartView->resize(wide, heigh);
}void PolarChart::setPointsVisible(bool ISVisible)
{lineSerises->setPointsVisible(ISVisible);
}
QT基于QPolarChart封装一个极坐标系类(控件显示)相关推荐
- Qt使用C++封装qml自定义图形控件(QQuickPaintedItem)
C++封装qml自定义图形控件 QtWidget.qml简介 通过继承QQuickPaintedItem封装控件 描述 公用接口定义 代码示例 效果图 QtWidget.qml简介 Qt提供了2套UI ...
- 基于 element-plus 封装一个依赖 json 动态渲染的查询控件
前情回顾 优惠券网站 m.cps3.cn 基于 el-form 封装一个依赖 json 动态渲染的表单控件 Vue3 封装第三方组件(一)做一个合格的传声筒 功能 使用 vue3 + element- ...
- pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...
1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...
- python rgb led控件_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...
1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...
- php面向对象分页,PHP基于面向对象封装的分页类示例
本文实例讲述了php基于面向对象封装的分页类.分享给大家供大家参考,具体如下: class page { protected $num;//每页显示条数 protected $total;//总记录数 ...
- 1.使用C++封装一个链表类LinkList
使用C++封装一个链表类LinkList.写出相应一个测试用例 链表需要提供 添加 修改删除 除重 合并 排序创建 销毁等接口. 不能调用库函数或者使用STL等类库 题目延伸********** ...
- java订单类_基于Java创建一个订单类代码实例
这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...
- 封装一个学生类Student(使用类与对象的方法)
5.封装一个学生类Student,(自行分辨定义为类属性还是实例属性,方法定义为实例方法) - 属性:身份(学生),姓名,年龄,性别,英语成绩,数学成绩,语文成绩, - 方法一:计算总分,方法二:计算 ...
- 日历---C++封装一个Date类,Calendar类,实现简单的日历+日期计算器程序
C++封装一个Date类,实现简单的日历程序 程序代码如下: Date.h #include<iostream> using namespace std;class Date {publi ...
最新文章
- ubuntu16.04系统下安装fasttext文本分类库
- 中国高校最强超算!上算引力波,下算光量子
- 5G NGC — AMF 接入和移动性管理功能
- golang中的strings.Trim
- H3C 2126 限速后的问题
- return两个返回值_LeetCode 第四题 寻找两个有序数组的中位数
- 剑指 Offer 37. 序列化二叉树
- python Box-Cox数据变化与逆变化
- Python3系列__01Python安装
- 手机网站按住放大图片_这6个鲜为人知的黑科技网站,我可以玩一天
- lxterminal命令打开新窗口并执行python脚本
- 中国农村统计年鉴合集(1985-2019年)
- snmptrap发送消息到服务器,我试图通过snmptrap发送snmp消息
- 石文软件测试,石文软件基本操作
- 软件工程师具体的工作内容是什么?
- 小技巧:办公邮箱怎么登录foxmail?outlook如何群发单显?
- 计算机网络和现场总线的区别,现场总线系统的特点和组成
- 2017年的Microsoft Imagine Cup提供的免费Azure申请及使用方法
- python遇到错误跳过_python 如何跳过异常继续执行
- coap 返回版本信息_CoAP协议学习笔记
热门文章
- 用Python实现冰雹猜想(3n+1猜想,角谷猜想,叙古拉猜想)的黑洞演示
- Unity中的重载和重写
- 计算机编码方式详解(Unicode、UTF-8、UTF-16、ASCII)
- catboost案例
- uniapp 公众号打开小程序,app打开小程序,小程序打开其他小程序
- 自动开料机器人_木工机器人自动化加工生产线
- 制作Ubuntu的U盘启动盘
- 30天干掉tensorflow2.0-day01
- [置顶] gis海量资源网盘提供VIP账号无广告高速下载 (更新更多资源)
- 【深度观察】小米、京东做了一年智能硬件后,阿里终于醒悟了