有关QtChart的介绍在这就不详谈了,想要具体了解的百度就可以,官网和网站大多数都是介绍如何在QtCreator中使用QtChart,而本文主要介绍如何在vs中使用。 使用工具:VS2017+Qt5.13.2 准备工作首先,安装以下软件:
创建过程: 1、新建一个Qt的gui工程,一路next 2、打开ui文件,在designer中拖动一个widget,并提升窗口部件为QChartView 3、接下来先不要编译,因为我们还没有把QtChart的库文件包含进来,首先打开项目的属性,注意在添加包含目录的时候,要把QtCharts那个路径添加进去,这样ui文件中提升的那个头文件就不会报错 VC++目录->包含目录->添加: D:\softsetup\qt5.13.2\5.13.2\msvc2017_64\include\QtCharts D:\softsetup\qt5.13.2\5.13.2\msvc2017_64\include 库目录: D:\softsetup\qt5.13.2\5.13.2\msvc2017_64\lib 下面添加附加依赖库: 连接器->输入->添加依赖项:Qt5Chartsd.lib 设置完了之后就可以点击确定,并进行编译,此时编译之后会出现错误,这是因为没有写命名空间: 4、那么我们在添加命名空间的时候不要在ui_xxx.h文件里面进行添加,因为这是自动生成的文件,每一次添加新的控件并编译的时候就把你添加的信息给删除掉,这时我们可以添加到刚开始新建的文件中去,见下图; 如果图中的命名空间不能用,(试过在头文件中不能用),则可以换另外一个:using namespace QtCharts; 此时,再进行编译就不会出现错误 5、然后,我们在这个cpp文件下面,写上简单的函数进行编译运行验证,见图: 自此,构建成功,谢谢! 我踩过的坑,希望大家不要再踩一遍,仔细按照上面的进行,运行不了你找我! 后续探索,有时间写... 全部代码:chartview.cpp #include "chartview.h"
chartView::chartView(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); } void chartView::on_pushButton1_clicked() { chartDispaly(); } void chartView::on_pushButton2_clicked() { initChartView(); } void chartView::chartDispaly() { QSplineSeries *series = new QSplineSeries(); for (float i = 0; i < 100; i++) { series->append(i, sin(0.5*i)); } QChart *chart = new QChart(); chart->addSeries(series); chart->legend()->hide(); chart->createDefaultAxes(); chart->setTheme(QChart::ChartThemeDark); //方法1 ui.widget->setChart(chart); //方法2 //QChartView *chartView = new QChartView(chart); //chartView->setRenderHint(QPainter::Antialiasing); //this->setCentralWidget(chartView); }
void chartView::initChartView() { QChart *chart2 = new QChart(); QLineSeries *series = new QLineSeries(); *series << QPointF(1.0, 1.0) << QPointF(2.0, 73.0) << QPointF(3.0, 268.0) << QPointF(4.0, 17.0) << QPointF(5.0, 4325.0) << QPointF(6.0, 723.0); chart2->addSeries(series); chart2->legend()->hide();//隐藏图例 chart2->setTitle("Logarithmic axis example");//设置图标标题 QValueAxis *axisX = new QValueAxis(); axisX->setTitleText("Data point"); axisX->setLabelFormat("%im"); axisX->setTickCount(series->count()); chart2->addAxis(axisX, Qt::AlignBottom); series->attachAxis(axisX); QLogValueAxis *axisY = new QLogValueAxis(); axisY->setTitleText("Values"); axisY->setLabelFormat("%gkg"); axisY->setBase(8); //axisY->setMinorTickCount(-1); chart2->addAxis(axisY, Qt::AlignLeft); series->attachAxis(axisY); QChartView *chartView = new QChartView(chart2); chartView->setRenderHint(QPainter::Antialiasing); //connect(series, &QLineSeries::hovered, this, &QtGuiApplication1::showValue); this->setCentralWidget(chartView); }
chartview.h #pragma once
#include <QtWidgets/QMainWindow> #include <QtCharts> #include "ui_chartview.h"
class chartView : public QMainWindow { Q_OBJECT
public: chartView(QWidget *parent = Q_NULLPTR);
private: Ui::chartViewClass ui; void chartDispaly(); void initChartView(); private slots: void on_pushButton1_clicked(); void on_pushButton2_clicked(); };
github源码地址:https://github.com/zyr365/chartView |
|
来自: ontheroad96j47 > 《待分类》