Índice
1.1 Eixo de coordenadas-QAbstractAxis
2.1 Introdução ao gráfico de linhas Qt
2.2 Implementação do gráfico de linhas Qt
Gráfico Qt é um controle especialmente usado para visualização de dados
Os gráficos Qt incluem linha, pizza, barra, dispersão, intervalo, etc.
Ao usar gráficos Qt, você precisa adicionar gráficos Qt +=
Incluir arquivos de cabeçalho#incluir
1. Conceito
1.1 Eixo de coordenadas-QAbstractAxis
Nos gráficos, geralmente existem eixos de coordenadas X e Y, e os mais complexos também possuem um eixo Z. Os gráficos correspondentes ao Qt também possuem objetos nos eixos X e Y. Mas hoje não vamos apresentá-lo ainda. Se não criarmos um objeto correspondente às coordenadas do eixo, podemos usar o objeto de eixo padrão do Qt. Apresentaremos o uso mais tarde.
1.2 Série-QAbstractSeries
Quer se trate de uma curva, gráfico de pizza, gráfico de barras ou outro gráfico, o conteúdo exibido nele são essencialmente dados. Uma curva é um conjunto de dados e um gráfico de pizza também corresponde a um conjunto de dados. Nos Qt Charts, esses grupos de dados são chamados de séries. Qt fornece diferentes séries correspondentes a diferentes tipos de gráficos. Além de serem responsáveis pelo armazenamento e acesso aos dados, as séries também devem fornecer métodos de desenho de dados, como gráficos de linhas e gráficos de curvas correspondentes a QLineSerie e QSPLineSerie respectivamente. Podemos usar séries diferentes para atingir diferentes propósitos de exibição.
1.3 Legenda-Lenda
Semelhante ao Excel, as legendas também são fornecidas nos gráficos Qt, e as legendas também podem ser mostradas ou ocultadas.
1.4 Gráfico-QChart
Qt fornece a classe QChart para encapsular o conteúdo mencionado anteriormente, como eixos coordenados, séries, legendas, etc. QChart assume um papel organizacional e de gestão. QChart deriva de QGraphicsObject, portanto é na verdade um item primitivo. Podemos obter objetos de eixo, objetos de série de dados, legendas, etc. do QChart e podemos definir o tema, a cor de fundo e outras informações de estilo do gráfico.
1.5 Ver-QChartView
Responsável pela exibição do QChart. O próprio QChart é responsável apenas pela organização e gerenciamento do conteúdo do gráfico. A exibição do gráfico é controlada pela visualização, que é QChartView. QChartView é derivado de QGraphicsView, mas fornece especificamente várias interfaces orientadas a QChart, como setChart (QChart*), etc.
2. Gráfico de linhas QT
2.1 Introdução ao gráfico de linhas Qt
A classe usada pelo gráfico de linhas Qt é QlineSeries.
O gráfico de linhas Qt contém as seguintes partes: ① Eixo de coordenadas (x, y) ② Linha ③ Linha de fundo de referência
2.2 Implementação do gráfico de linhas Qt
O processo de implementação do gráfico de linhas Qt inclui principalmente as seguintes etapas:
1. Crie um novo gráfico de objeto gráfico QChart;
2. Adicione eixos coordenados (eixos x, y) ao gráfico;
3. Promova um QWidget para QChartView na interface do usuário como a visualização do gráfico;
4. Adicione um novo objeto polilinha QLineSeries ao gráfico (várias linhas podem ser adicionadas)
5. Adicione dados
6. Limpar dados
um. Crie um novo gráfico de objeto gráfico QChart
QChart *chart = new QChart();
chart->legend()->setVisible(true);
QFont font;
font.setPixelSize(50);
chart->setTitleFont(font);
chart->setTitle("小红体重曲线");//设置图表标题
dois. Adicione eixos coordenados (eixo x, eixo y) ao gráfico
QValueAxis *axisX;
axisX = new QValueAxis();
axisX->setTitleText("时间"); //设置坐标轴的标题
axisX->setLabelFormat("%i"); //设置坐标格式,类似于 printf
axisX->setTickCount(10); //坐标被分成多少格
axisX->setRange(0, 60); //设置范围
//Bottom 是底部的意思,意思是坐标轴是放在底部的,也就是 X 轴
//相似的还有 Qt::AlignLeft...
chart->addAxis(axisX, Qt::AlignBottom);
QValueAxis *axisY;
axisY = new QValueAxis();
axisY->setTitleText("体重"); //设置坐标轴的标题
axisY->setLabelFormat("%i"); //设置坐标格式
axisY->setTickCount(5); //坐标被分成多少格
axisY->setRange(0, 200); //设置范围
chart->addAxis(axisY, Qt::AlignLeft);
três. Promova um QWidget em QChartView na interface do usuário como a visualização do gráfico;
Quatro. Adicione um novo objeto polilinha QLineSeries no gráfico (várias linhas podem ser adicionadas)
line = new QLineSeries;
line->setName("体重曲线"); //设置线的名字
line->setColor(Qt::red); //设置线的颜色
chart->addSeries(line); //把曲线加到图表里 //设置曲线遵循哪个坐标,它会自动
识别 x,y 轴,因为坐标轴里的 AlignBottom/AlignLeft 属性
line->attachAxis(axisX);
line->attachAxis(axisY);
ui->chartView->setChart(chart);//把拆线添加到控件
cinco. Adicione dados e simule usando temporizador
1. Inicialização do temporizador
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
x = 0;
timer->start(1000);
2. Função de slot de temporizador
void Widget::doTimeoutSlot()
{
y = qrand() % 200; //生成随机数,范围在 200 以内,因为我们 y 轴最大是 200
qDebug()<<"y="<<y;
if(x > 60){
x = 0;
line->clear();
}else{
line->append(x, y);
x++;
}
}
seis. Limpar linha de dados->clear();