1、初始化轴:保留x1(下)和y1(左)
2、设置标题
3、创建布局管理器,设置布局策略
4、将元素加到图层中
5、设置相同空白
6、调用 addAxisRect()
代码如下
QCPAxisRect *MPlot::addAxisRect(Qt::Orientation ori, QString &strY, QString &strX, QString &strTitile)
{
QCPAxisRect *rect = NULL;
if(!rect)
{
rect = new QCPAxisRect(this);
//初始化标题、初始化轴
int row, col;
getRowCol(row, col, ori);
qDebug() << "row" << row << "col" << col;
initAxis(rect->axis(QCPAxis::atLeft), rect->axis(QCPAxis::atBottom), strY, strX);
//创建标题
QCPTextElement *title = new QCPTextElement(this);
title->setText(strTitile);
//布局
QCPLayoutGrid *rectLayout = new QCPLayoutGrid;
rectLayout->addElement(0,0,title);
rectLayout->setRowSpacing(0);
rectLayout->addElement(rectLayout->rowCount(), 0, rect);
this->plotLayout()->addElement(row, col, rectLayout);
this->plotLayout()->setRowSpacing(0);
//将元素加到图层中
foreach (QCPAxisRect *rect, this->axisRects())
{
foreach (QCPAxis *axis, rect->axes())
{
axis->setLayer("axes");
axis->grid()->setLayer("grid");
}
}
//设置相同空白
rect->setMarginGroup(QCP::msLeft, marginGroup);
}
return rect;
}
//调用:图1水平方向布局,图2垂直方向布局
mPlot->addAxisRect(Qt::Horizontal, QString("V"), QString("T"), QString("v-t"));
mPlot->addAxisRect(Qt::Horizontal, QString("S"), QString("T"), QString("s-t"));
效果图如上,这例子仅供参考,如有不足之处,请大家留言。